Website build mosaic-website/main-22
diff --git a/404.html b/404.html
index 2727230..e8caaa1 100644
--- a/404.html
+++ b/404.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/404.html">
-  <meta property="og:title" content="404 Page not found | Eclipse MOSAIC">
+  <meta property="og:title" content="404 Page not found | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -262,7 +262,7 @@
 
 
 
-  <title>404 Page not found | Eclipse MOSAIC</title>
+  <title>404 Page not found | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -318,7 +318,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -331,7 +331,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/about/index.html b/about/index.html
index 0ad147b..b4012b2 100644
--- a/about/index.html
+++ b/about/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/about/">
-  <meta property="og:title" content="About | Eclipse MOSAIC">
+  <meta property="og:title" content="About | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Hello!"><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>About | Eclipse MOSAIC</title>
+  <title>About | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/author/fraunhofer-fokus/index.html b/author/fraunhofer-fokus/index.html
index a1813a4..c3f4c56 100644
--- a/author/fraunhofer-fokus/index.html
+++ b/author/fraunhofer-fokus/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/author/fraunhofer-fokus/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/author/fraunhofer-fokus/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/author/fraunhofer-fokus/">
-  <meta property="og:title" content="Fraunhofer FOKUS | Eclipse MOSAIC">
+  <meta property="og:title" content="Fraunhofer FOKUS | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Fraunhofer FOKUS | Eclipse MOSAIC</title>
+  <title>Fraunhofer FOKUS | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/author/fraunhofer-fokus/index.xml b/author/fraunhofer-fokus/index.xml
index afc1205..689ce34 100644
--- a/author/fraunhofer-fokus/index.xml
+++ b/author/fraunhofer-fokus/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Fraunhofer FOKUS | Eclipse MOSAIC</title>
+    <title>Fraunhofer FOKUS | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/author/fraunhofer-fokus/</link>
       <atom:link href="https://www.eclipse.org/mosaic/author/fraunhofer-fokus/index.xml" rel="self" type="application/rss+xml" />
     <description>Fraunhofer FOKUS</description>
diff --git a/authors/index.html b/authors/index.html
index 3a0dbb3..ba482c7 100644
--- a/authors/index.html
+++ b/authors/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/authors/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/authors/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/authors/">
-  <meta property="og:title" content="Authors | Eclipse MOSAIC">
+  <meta property="og:title" content="Authors | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Authors | Eclipse MOSAIC</title>
+  <title>Authors | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/authors/index.xml b/authors/index.xml
index 4f9c90e..e34d62c 100644
--- a/authors/index.xml
+++ b/authors/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Authors | Eclipse MOSAIC</title>
+    <title>Authors | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/authors/</link>
       <atom:link href="https://www.eclipse.org/mosaic/authors/index.xml" rel="self" type="application/rss+xml" />
     <description>Authors</description>
diff --git a/categories/index.html b/categories/index.html
index 2e1dea6..b39adea 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/categories/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/categories/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/categories/">
-  <meta property="og:title" content="Categories | Eclipse MOSAIC">
+  <meta property="og:title" content="Categories | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Categories | Eclipse MOSAIC</title>
+  <title>Categories | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/categories/index.xml b/categories/index.xml
index bdd518e..f8aef89 100644
--- a/categories/index.xml
+++ b/categories/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Categories | Eclipse MOSAIC</title>
+    <title>Categories | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/categories/</link>
       <atom:link href="https://www.eclipse.org/mosaic/categories/index.xml" rel="self" type="application/rss+xml" />
     <description>Categories</description>
diff --git a/community/index.html b/community/index.html
index 549c176..3811e97 100644
--- a/community/index.html
+++ b/community/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/community/">
-  <meta property="og:title" content="Eclipse MOSAIC Community | Eclipse MOSAIC">
+  <meta property="og:title" content="Eclipse MOSAIC Community | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Eclipse MOSAIC Community"><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Eclipse MOSAIC Community | Eclipse MOSAIC</title>
+  <title>Eclipse MOSAIC Community | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -965,9 +965,19 @@
     
     <div class="project col-12">
       <div class="row">
-        <div class="logo col-12 col-md-2">
+        <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
+            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/emerge.png" title="" alt="" width="90%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
               <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" class="view-list-item mb-3">
                 
                 <img class="mx-auto" src="/mosaic/img/logos/projects/emerge.png" title="" alt="" width="90%">
@@ -992,7 +1002,7 @@
           
         </div>
 
-        <div class="buttons col-12 col-md-3">
+        <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
             <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
@@ -1000,6 +1010,14 @@
             
           </div>
         </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
       </div>
     </div>
     
@@ -1007,9 +1025,19 @@
     
     <div class="project col-12">
       <div class="row">
-        <div class="logo col-12 col-md-2">
+        <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
+            <a href="https://www.inframix.eu/" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/inframix.png" title="" alt="" width="100%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
               <a href="https://www.inframix.eu/" class="view-list-item mb-3">
                 
                 <img class="mx-auto" src="/mosaic/img/logos/projects/inframix.png" title="" alt="" width="100%">
@@ -1034,7 +1062,7 @@
           
         </div>
 
-        <div class="buttons col-12 col-md-3">
+        <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
             <a href="https://www.inframix.eu/" title="INFRAMIX" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
@@ -1042,6 +1070,14 @@
             
           </div>
         </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.inframix.eu/" title="INFRAMIX" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
       </div>
     </div>
     
@@ -1049,9 +1085,139 @@
     
     <div class="project col-12">
       <div class="row">
-        <div class="logo col-12 col-md-2">
+        <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
+            <a href="https://imagine-online.de/en/home/" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/imagine.svg" title="" alt="" width="90%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://imagine-online.de/en/home/" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/imagine.svg" title="" alt="" width="90%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://imagine-online.de/en/home/" title="IMAGinE">
+              IMAGinE
+              </a>
+            </h2>
+          
+          
+            <h3>Cooperative Driving</h3>
+          
+          
+            <div class="desc">The IMAGinE (Intelligent Maneuver Automation – cooperative hazard avoidance in realtime) project is developing innovative driving assistance systems for cooperative driving.</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://imagine-online.de/en/home/" title="IMAGinE" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://imagine-online.de/en/home/" title="IMAGinE" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://imagine-online.de/en/home/" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/simtd.jpg" title="" alt="" width="70%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://imagine-online.de/en/home/" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/simtd.jpg" title="" alt="" width="70%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://imagine-online.de/en/home/" title="simTD">
+              simTD
+              </a>
+            </h2>
+          
+          
+            <h3>Car-2-X Communication</h3>
+          
+          
+            <div class="desc">With the help of Car-to-X Communication - the electronic cross-linking of vehicles and infrastructure - infrastructure operators (e.g. traffic management centres), individual vehicles and a lot of further stakeholders have access to new, high resolution information in real time.</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://imagine-online.de/en/home/" title="simTD" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://imagine-online.de/en/home/" title="simTD" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/sendate.png" title="" alt="" width="90%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
               <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" class="view-list-item mb-3">
                 
                 <img class="mx-auto" src="/mosaic/img/logos/projects/sendate.png" title="" alt="" width="90%">
@@ -1076,7 +1242,7 @@
           
         </div>
 
-        <div class="buttons col-12 col-md-3">
+        <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
             <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" title="SENDATE" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
@@ -1084,6 +1250,14 @@
             
           </div>
         </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" title="SENDATE" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
       </div>
     </div>
     
@@ -1091,10 +1265,20 @@
     
     <div class="project col-12">
       <div class="row">
-        <div class="logo col-12 col-md-2">
+        <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
-              <a href="https://www.sendate.eu/" class="view-list-item mb-3">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/streetlife.png" title="" alt="" width="80%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" class="view-list-item mb-3">
                 
                 <img class="mx-auto" src="/mosaic/img/logos/projects/streetlife.png" title="" alt="" width="80%">
               </a>
@@ -1105,7 +1289,7 @@
         <div class="text col-12 col-md-7">
           
             <h2>
-              <a href="https://www.sendate.eu/" title="Streetlife">
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife">
               Streetlife
               </a>
             </h2>
@@ -1116,9 +1300,17 @@
           
         </div>
 
-        <div class="buttons col-12 col-md-3">
+        <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
-            <a href="https://www.sendate.eu/" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
             </a>
             
@@ -1131,9 +1323,19 @@
     
     <div class="project col-12">
       <div class="row">
-        <div class="logo col-12 col-md-2">
+        <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
+            <a href="http://www.collaborative-team.eu/" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/team.png" title="" alt="" width="70%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
               <a href="http://www.collaborative-team.eu/" class="view-list-item mb-3">
                 
                 <img class="mx-auto" src="/mosaic/img/logos/projects/team.png" title="" alt="" width="70%">
@@ -1158,7 +1360,7 @@
           
         </div>
 
-        <div class="buttons col-12 col-md-3">
+        <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
             <a href="http://www.collaborative-team.eu/" title="TEAM" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
@@ -1166,6 +1368,14 @@
             
           </div>
         </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="http://www.collaborative-team.eu/" title="TEAM" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
       </div>
     </div>
     
diff --git a/contribution/index.html b/contribution/index.html
index 001253d..496b583 100644
--- a/contribution/index.html
+++ b/contribution/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/contribution/">
-  <meta property="og:title" content="Contribution to Eclipse MOSAIC | Eclipse MOSAIC">
+  <meta property="og:title" content="Contribution to Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="List of publications and thesis related to Eclipse MOSAIC."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Contribution to Eclipse MOSAIC | Eclipse MOSAIC</title>
+  <title>Contribution to Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/css/academic.css b/css/academic.css
index e23fb35..48d9e0c 100644
--- a/css/academic.css
+++ b/css/academic.css
@@ -4,4 +4,4 @@
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--primary: #68145C;--secondary: #6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: #dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#68145C;text-decoration:none;background-color:transparent}a:hover{color:#280823;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:rgba(0,0,0,0.54);text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1200px}}.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1200px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#d5bdd1}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#b085aa}.table-hover .table-primary:hover{background-color:#cbadc6}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#cbadc6}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#d6d8db}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>th,.table-success>td{background-color:#c3e6cb}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>th,.table-info>td{background-color:#bee5eb}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffeeba}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5c6cb}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark th,.table-dark td,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#d329bb;outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:rgba(0,0,0,0.54)}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,0.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#28a745}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#28a745}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#28a745}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#28a745}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,0.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#dc3545}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#dc3545}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#dc3545}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#68145C;border-color:#68145C}.btn-primary:hover{color:#fff;background-color:#480e40;border-color:#3d0c36}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#480e40;border-color:#3d0c36;box-shadow:0 0 0 .2rem rgba(127,55,116,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#68145C;border-color:#68145C}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary.active:not(:disabled):not(.disabled),.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#3d0c36;border-color:#330a2d}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary.active:not(:disabled):not(.disabled):focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(127,55,116,0.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus,.btn-secondary.focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary.active:not(:disabled):not(.disabled),.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary.active:not(:disabled):not(.disabled):focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,0.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled):active,.btn-success.active:not(:disabled):not(.disabled),.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success.active:not(:disabled):not(.disabled):focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,0.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled):active,.btn-info.active:not(:disabled):not(.disabled),.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info.active:not(:disabled):not(.disabled):focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,0.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning:focus,.btn-warning.focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning.active:not(:disabled):not(.disabled),.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning.active:not(:disabled):not(.disabled):focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,0.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger.active:not(:disabled):not(.disabled),.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger.active:not(:disabled):not(.disabled):focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light.active:not(:disabled):not(.disabled),.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light.active:not(:disabled):not(.disabled):focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark.active:not(:disabled):not(.disabled),.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark.active:not(:disabled):not(.disabled):focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-outline-primary{color:#68145C;border-color:#68145C}.btn-outline-primary:hover{color:#fff;background-color:#68145C;border-color:#68145C}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(104,20,92,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#68145C;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary.active:not(:disabled):not(.disabled),.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#68145C;border-color:#68145C}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(104,20,92,0.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary.active:not(:disabled):not(.disabled),.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success.active:not(:disabled):not(.disabled),.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info.active:not(:disabled):not(.disabled),.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning.active:not(:disabled):not(.disabled),.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger.active:not(:disabled):not(.disabled),.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light.active:not(:disabled):not(.disabled),.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark.active:not(:disabled):not(.disabled),.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-link{font-weight:400;color:#68145C;text-decoration:none}.btn-link:hover{color:#280823;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input.btn-block[type="submit"],input.btn-block[type="reset"],input.btn-block[type="button"]{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#68145C}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#68145C;background-color:#68145C}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#d329bb}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#de51c9;border-color:#de51c9}.custom-control-input[disabled]~.custom-control-label,.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input[disabled]~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50% / 50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#68145C;background-color:#68145C}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#d329bb;outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#d329bb;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.custom-file-input[disabled]~.custom-file-label,.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(104,20,92,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(104,20,92,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(104,20,92,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#68145C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#de51c9}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#68145C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#de51c9}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#68145C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#de51c9}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#68145C}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.35rem;padding-bottom:.35rem;margin-right:1rem;font-size:1.2rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem 0;font-size:1.125rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#2b2b2b}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#B5229F}.navbar-light .navbar-nav .nav-link{color:#34495e}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:#B5229F}.navbar-light .navbar-toggler{color:#34495e;border-color:rgba(0,0,0,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%2334495e' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#34495e}.navbar-light .navbar-text a{color:#B5229F}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#B5229F}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#68145C;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#280823;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#68145C;border-color:#68145C}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#68145C}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#3d0c36}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:hover,a.badge-secondary:focus{color:#fff;background-color:#545b62}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#1e7e34}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#117a8b}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:hover,a.badge-warning:focus{color:#212529;background-color:#d39e00}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#bd2130}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{color:#212529;background-color:#dae0e5}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#1d2124}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert,.article-style aside{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#360a30;background-color:#e1d0de;border-color:#d5bdd1}.alert-primary hr{border-top-color:#cbadc6}.alert-primary .alert-link{color:#0b020a}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#68145C;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#68145C;border-color:#68145C}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#360a30;background-color:#d5bdd1}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#360a30;background-color:#cbadc6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#360a30;border-color:#360a30}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border:1px solid rgba(0,0,0,0.1);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,0.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="left"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50% / 100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#68145C !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#3d0c36 !important}.bg-secondary{background-color:#6c757d !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#545b62 !important}.bg-success{background-color:#28a745 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#1e7e34 !important}.bg-info{background-color:#17a2b8 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#117a8b !important}.bg-warning{background-color:#ffc107 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#d39e00 !important}.bg-danger{background-color:#dc3545 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#bd2130 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #dee2e6 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-right{border-right:1px solid #dee2e6 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-left{border-left:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#68145C !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#28a745 !important}.border-info{border-color:#17a2b8 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-lg{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714286%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#68145C !important}a.text-primary:hover,a.text-primary:focus{color:#280823 !important}.text-secondary{color:#6c757d !important}a.text-secondary:hover,a.text-secondary:focus{color:#494f54 !important}.text-success{color:#28a745 !important}a.text-success:hover,a.text-success:focus{color:#19692c !important}.text-info{color:#17a2b8 !important}a.text-info:hover,a.text-info:focus{color:#0f6674 !important}.text-warning{color:#ffc107 !important}a.text-warning:hover,a.text-warning:focus{color:#ba8b00 !important}.text-danger{color:#dc3545 !important}a.text-danger:hover,a.text-danger:focus{color:#a71d2a !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-body{color:#212529 !important}.text-muted{color:rgba(0,0,0,0.54) !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;overflow-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-family:"Lato",sans-serif;font-size:16.17px;color:rgba(0,0,0,0.8);line-height:1.65}@media screen and (min-width: 58em){html{font-size:21px}}body{font-family:inherit;font-size:1rem;line-height:inherit;color:inherit;background-color:#fff;margin-top:70px;padding-top:0;counter-reset:captions}@media (max-width: 991.98px){body{margin-top:50px}}.max-width-640{max-width:640px}.margin-auto,figure img{margin-left:auto;margin-right:auto}.center-text{text-align:center}p{margin-top:0;margin-bottom:1rem}ul,ol,dl{margin-top:0;margin-bottom:1rem}ul.task-list{list-style:none}ul.task-list li input[type="checkbox"]{margin-right:0.5rem}.navbar-light{font-family:"Lato",sans-serif;font-weight:400;line-height:1.25;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:"Lato",sans-serif;font-weight:400;margin-top:1rem;margin-bottom:.5rem;line-height:1.25;color:#313131;text-rendering:optimizeLegibility;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual}h1{font-size:2.25rem}h2{margin-top:1rem;font-size:1.5rem}h3{font-weight:700;margin-top:1.5rem;font-size:1.25rem}h4,h5,h6{font-weight:700;margin-top:1rem;font-size:1rem}a,h3.article-title a:hover{color:#68145C;text-decoration:none;transition:color 0.6s ease}a:hover,a:focus{color:#68145C}img,video{height:auto;max-width:100%;display:block}video{width:100%;height:auto;max-height:400px}.img-responsive{margin:0 auto}figcaption{display:block;margin-top:0.75em;margin-bottom:1.65rem;line-height:1.4;font-size:0.76rem;text-align:center}figcaption.numbered:before{font-weight:700;text-transform:uppercase;content:attr(data-pre) counter(captions) attr(data-post)}figcaption.numbered{counter-increment:captions}pre,code{font-family:"Roboto Mono",monospace;color:#3d0c36;background-color:#f8f8f8}pre{margin:0 0 1rem 0;background-color:#f8f8f8;border-color:#f8f8f8;font-size:0.7rem;border-radius:4px}pre code{white-space:pre;overflow-x:auto}hr{border:0;height:1px;background:#333;background-image:linear-gradient(to right, #ccc, #333, #ccc)}blockquote{padding:.5rem 1rem;margin:.8rem 0;color:#7a7a7a;border-left:.25rem solid #e5e5e5}blockquote p:last-child{margin-bottom:0}@media (min-width: 30em){blockquote{padding-right:5rem;padding-left:1.25rem}}.markup-quote{background-color:transparent;background-image:linear-gradient(to bottom, #e9e7f5, #e9e7f5)}.space-below{margin-bottom:50px}@media screen and (max-width: 768px){.space-below{margin-bottom:10px}}.universal-wrapper{margin:0 auto;padding-right:1rem;padding-left:1rem;padding-top:0.1rem;width:100%}@media only screen and (min-width: 1001px){.universal-wrapper{width:1000px}}small,.small{font-size:.75em}.responsive-wrap iframe{max-width:100%}.modal-content{background:#fff}.modal-title{margin:0}.modal-content pre{margin:0}.modal-header{border:0;color:rgba(0,0,0,0.8)}.modal-footer{border:0}#modal-error{color:red}.gallery{margin:0.5em -4px 1.5em -4px;font-size:0}a[data-fancybox]{text-decoration:none;cursor:zoom-in}.gallery a[data-fancybox] img{height:250px;width:auto;max-width:inherit;display:inherit;margin:0;padding:4px;box-shadow:none;vertical-align:inherit}.fancybox-caption{font-size:1rem;line-height:1.5rem;text-align:center}.post-nav{margin-top:1rem;font-size:0.8rem}.post-nav-item{hyphens:auto;word-wrap:break-word;padding:11px 0 12px;width:100%}.post-nav-item a{color:#2b2b2b;line-height:1.7;text-transform:none}.post-nav-item .meta-nav{color:#767676;font-weight:900;line-height:2;text-transform:uppercase}.dark .post-nav-item a{color:#ddd}footer{margin:4rem 0 0;padding:2rem 0;width:100%}footer p{font-size:0.75rem;text-align:center}site-footer,footer a.back-to-top i{color:rgba(0,0,0,0.54)}.dark site-footer,.dark footer a.back-to-top i,.dark .docs .body-footer{color:rgba(255,255,255,0.54)}.badge-light{border:none;color:rgba(0,0,0,0.68);background:rgba(0,0,0,0.05);font-weight:normal;border-radius:3px;padding:5px 10px;margin-right:8px;margin-bottom:8px}.article-tags>.badge-light:last-child{margin-right:0}.badge-light[href]:focus,.badge-light[href]:hover{background:rgba(0,0,0,0.1)}a.badge:focus,a.badge:hover{color:rgba(0,0,0,0.68)}.tag-cloud a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out}.tag-cloud a:active,.tag-cloud a:focus,.tag-cloud a:hover{color:#3d0c36;transform:scale(1.2)}.dark .tag-cloud a:active,.dark .tag-cloud a:focus,.dark .tag-cloud a:hover{color:#931c82}.btn{padding:.5rem;font-size:.8rem;line-height:.5;border-radius:.3rem}.btn-links .btn{padding:5px .5rem 5px .5rem;line-height:1}.btn.btn-sm,.btn-group-sm>.btn{padding:5px .4rem 5px .4rem;font-size:.6rem;border-radius:.2rem}.btn-toolbar .btn{font-size:0.9rem;padding:10px 14px 9px;border:none}.btn-toolbar .btn:first-child{border-radius:6px 0 0 6px}.btn-toolbar .btn:last-child{border-radius:0 6px 6px 0}.btn-toolbar .btn.btn-primary:hover,.btn-toolbar .btn.btn-primary:focus{background-color:#931c82 !important}.btn-toolbar .btn.btn-primary:active,.btn-toolbar .btn.btn-primary.active{background-color:#3d0c36 !important}.btn-primary.active:not(:disabled):not(.disabled):focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0.2rem #931c82}table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem;font-size:0.8rem}table>thead>tr>th,table>tbody>tr>th,table>tfoot>tr>th,table>thead>tr>td,table>tbody>tr>td,table>tfoot>tr>td{padding:8px;line-height:1.43;vertical-align:top;border-top:1px solid #ddd}table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}table>caption+thead>tr:first-child>th,table>colgroup+thead>tr:first-child>th,table>thead:first-child>tr:first-child>th,table>caption+thead>tr:first-child>td,table>colgroup+thead>tr:first-child>td,table>thead:first-child>tr:first-child>td{border-top:0}table>tbody+tbody{border-top:2px solid #ddd}table table{background-color:#fff}table>tbody>tr:nth-child(odd)>td,table>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}table>tbody>tr:hover>td,table>tbody>tr:hover>th{background-color:#e5e5e5}.article-style aside p,div.alert>div{position:relative;display:block;font-size:1rem;margin-left:2rem;margin-top:0;margin-bottom:0}div.alert div>*{margin-bottom:.5rem}div.alert div>:last-child{margin-bottom:0}.article-style aside p::before,div.alert>div:first-child::before{position:absolute;top:-0.5rem;left:-2rem;font-size:1.5rem;color:#209cee;font-family:'Font Awesome 5 Free';font-weight:900;content:'\f05a';width:1.5rem;text-align:center}div.alert-warning>div:first-child::before{font-family:'Font Awesome 5 Free';font-weight:900;color:#ff3860;content:'\f071'}.article-style aside a,div.alert a{color:currentColor;text-decoration:none;border-bottom:solid 1px currentColor}.article-style aside,.alert-note{color:#12537e;background-color:#f6fbfe;border-color:#209cee}.alert-warning{color:#cd0930;background-color:#fff5f7;border-color:#ff3860}.svg-icon{display:inline-flex;align-self:center}.svg-icon{height:0.9em;width:0.9em}.svg-icon.svg-baseline{bottom:0.1em;line-height:1;position:relative}.footer-license-icons{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;height:auto;width:auto;font-size:0;text-decoration:none}.footer-license-icons img{display:inline-flex;margin-right:8px;height:22px;vertical-align:text-bottom}.navbar{height:70px;background:#fff;box-shadow:0 0.125rem 0.25rem 0 rgba(0,0,0,0.11);font-size:16.17px;position:fixed;top:0;right:0;left:0;z-index:1030;padding:0 1rem}.navbar .nav-item{position:relative}@media (max-width: 991.98px){.navbar{height:50px}.navbar .navbar-nav-scroll{width:100%;overflow:hidden}.navbar .navbar-nav-scroll .navbar-nav{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}.navbar .navbar-nav{display:flex}.navbar .navbar-nav .nav-link{color:rgba(52,73,94,0.85)}.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link:hover,.navbar .navbar-nav .nav-link:focus{color:#34495e}.navbar .navbar-nav .nav-link.active{font-weight:bold !important;color:#B5229F !important}.navbar .dropdown-menu{font-size:16.17px}.navbar .dropdown-item.active,.navbar .dropdown-item-active{font-weight:bold;color:#B5229F !important}.dark .navbar{box-shadow:0 0.125rem 0.25rem 0 rgba(255,255,255,0.11)}.navbar-toggler{border:0 !important;position:relative;z-index:1030}.navbar-toggler:focus,.navbar-toggler:active{outline:none !important;box-shadow:none !important}@media (max-width: 991.98px){.i18n-dropdown .nav-link::after{content:none}}.i18n-dropdown .dropdown-menu,.theme-dropdown .dropdown-menu{position:absolute;right:0;left:auto}.navbar-brand{padding-top:5px;padding-bottom:5px;font-weight:bold;position:relative;z-index:1030}.navbar-brand img{width:auto;height:-moz-available;height:-webkit-fill-available;height:-webkit-stretch;height:stretch;max-height:60px;max-width:fit-content}#navbar-main .main-menu-item ul li .nav-link{color:#34495e}@media (max-width: 991.98px){.navbar-brand-mobile-wrapper{position:absolute;left:0;right:0}.navbar-brand{margin:0 auto}.navbar-brand img{max-height:40px}.navbar-toggler{border-color:transparent}#navbar-main .main-menu-item{text-align:left !important;padding-left:0}.navbar-collapse{z-index:1031 !important;position:absolute;left:0;top:50px;width:100%;background-color:#fff;text-align:center !important}#navbar-main .main-menu-item .nav-item{padding:10px 15px !important}#navbar-main .main-menu-item .nav-item .nav-link{padding:5px 15px !important}}ul.nav-icons{list-style-type:none;font-size:18px;padding:0.5rem 0 0.5rem 0;margin:0}ul.nav-icons li{display:inline;padding-right:1rem}ul.nav-icons li:last-of-type{padding-right:0}ul.nav-icons li.nav-item a.nav-link{padding:0}.dropdown-menu{background-color:#fff !important;color:#34495e !important;z-index:1032}.dropdown-item{background-color:#fff !important;color:#34495e !important}.card-simple{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.09);border-radius:3px;margin-top:20px;padding:15px 20px 15px 20px}.card-simple:first-of-type{margin-top:0}.card-simple p.read-more{margin:0}.dark .card-simple{background:#282a36;box-shadow:0 1px 4px rgba(0,0,0,0.04);border:1px solid #44475a}.card{margin-bottom:1.5rem;overflow:hidden;text-overflow:ellipsis;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);transition:all 0.2s ease-out}.card .card-image{display:block;position:relative;margin:3rem 3rem 0;min-height:6rem;max-width:80%;max-height:80%;text-align:center;vertical-align:middle}.card h4{font-size:0.9rem;font-weight:700;line-height:1.5;text-transform:uppercase}.card h4 a{color:#000;border-bottom:solid 1px transparent}.card h4 a:hover{color:#000;border-bottom:solid 1px #000;text-decoration:none}.card .card-text{padding:0.75rem 1rem 0.75rem}.card .card-text p{color:rgba(0,0,0,0.54);font-size:0.75rem}.dark .card-text p{color:#f8f8f2}.card p:last-child{margin-bottom:0}.card .card-image.hover-overlay:before{display:block;position:absolute;left:0;top:0;width:100%;height:100%;background:#fff;content:" ";opacity:0;transition:all 0.2s ease-out}.card .card-image.hover-overlay:after{display:block;position:absolute;left:0;top:50%;width:100%;transform:translate(0, -50%);opacity:0;transition:all 0.2s ease-out;font-family:'Font Awesome 5 Free';font-weight:900;content:'\f0c1';text-align:center;font-size:3rem;color:#666}.card:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2)}.card:hover .card-image.hover-overlay:before{opacity:0.8}.card:hover .card-image.hover-overlay:after{opacity:0.6}.search-results{transform:scale(0);-webkit-transform:scale(0);background-color:#fff;bottom:0;left:0;right:0;top:0;overflow:scroll;position:fixed;visibility:hidden;z-index:-99}.dark .search-results{background-color:#282a36}.searching{overflow:hidden}.searching .search-results{transform:scale(1);-webkit-transform:scale(1);visibility:visible;z-index:1031}.searching #search-box #search-query{width:100%}.search-results>.container{padding-top:70px}@media screen and (max-width: 1200px){.search-results>.container{padding-top:50px}}.search-header{position:-webkit-sticky;position:sticky;top:0;background-color:#fff;padding-top:2rem;padding-bottom:1rem}.dark .search-header{background-color:#282a36}.search-header h1{margin:0;line-height:1}.col-search-close{text-align:right}.search-header i{font-size:2rem;line-height:1}#search-box{position:relative;margin-bottom:0.5rem}#search-box::before{font-family:'Font Awesome 5 Free';font-weight:900;content:"\f002";font-size:1rem;opacity:0.25;line-height:1rem;position:absolute;left:0.7rem;top:0.6rem;overflow-x:hidden}#search-box #search-query{border:1px solid #dedede;border-radius:1rem;padding:1rem 1rem 1rem 2rem;width:250px;line-height:1rem;height:1rem;font-size:0.8rem}.search-hit em{font-style:normal;background-color:#FFE0B2;color:#E65100;border-bottom:1px solid #E65100}.search-hit-type{margin-bottom:0 !important;text-transform:capitalize}.search-hit-description{font-size:0.7rem}#search-hits button[disabled]{display:none}.form-control:focus{border-color:#68145C;box-shadow:0 0 0 0.2rem #931c82}.dark .ais-search-box--input{background-color:#282a36}.dark #search-query{background-color:#282a36}article{animation:intro 0.3s both;animation-delay:0.15s}.article-container{max-width:1200px;padding:0 20px 0 20px;margin:0 auto 0 auto}.page-subtitle{font-size:1.15rem;color:rgba(0,0,0,0.54);margin-bottom:1rem}.dark .page-subtitle{color:rgba(255,255,255,0.54)}.article-header{position:relative;clear:both}.article-banner{width:100%;height:auto}.featured-image-wrapper{position:relative;padding-left:0;padding-right:0}.featured-image{position:relative;width:100%;display:block;margin:0 auto}.article-header-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-size:.7em;background:#000;text-align:right;z-index:5;opacity:0.65;border-radius:5px 0 0 0}@media (min-width: 64em){.article-header-caption{padding:5px 10px}}.article-header-caption a{color:#fff;text-decoration:none}.article-title{font-size:1.75rem}.article-title a{color:#151515;transition:color 0.6s ease}.dark .text-muted{color:rgba(255,255,255,0.54) !important}.article-metadata{margin-bottom:15px;overflow:hidden;font-size:14px;letter-spacing:0.03em;color:rgba(0,0,0,0.54)}.dark .article-metadata{color:rgba(255,255,255,0.54)}.stream-meta.article-metadata{margin-bottom:5px}article .article-metadata{margin-bottom:20px}.article-metadata a{color:rgba(0,0,0,0.54)}.dark .article-metadata a{color:rgba(255,255,255,0.54)}.article-metadata a:hover{color:#68145C}.article-categories{white-space:nowrap}.middot-divider{padding-right:.45em;padding-left:.45em;font-size:15px}.middot-divider::after{content:'\00B7'}.article-style img,.article-style video{margin-left:auto;margin-right:auto;margin-top:2rem;margin-bottom:2rem;padding:0}.article-style td img,.article-style td video{margin-top:0;margin-bottom:0}.article-style figure{margin-top:2rem;margin-bottom:2rem}.article-style figure img{margin-top:0;margin-bottom:0}.pub-banner{max-width:100%;height:auto;margin-left:auto;margin-right:auto}.pub-row-heading{font-weight:bold}#container-publications{display:block;position:relative;overflow:hidden}.li-cite-author{font-size:1em;color:inherit}.li-cite-author a{color:inherit}.dark .li-cite-author a{color:#f8f8f2}.content-widget-hr{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid rgba(0,0,0,0.05)}.dark .content-widget-hr{border-top:1px solid rgba(255,255,255,0.05)}.article-tags{margin-top:1.2rem}.share-box{margin-top:0.7rem}ul.share{display:flex;align-items:center;justify-content:center;flex-direction:row;flex-wrap:wrap;list-style:none;margin:0;padding:0}ul.share li{display:inline-flex;margin-right:8px}ul.share li:last-of-type{margin-right:0}ul.share li i{display:block;width:30px;height:30px;line-height:30px;font-size:22px;text-align:center;transition:all 150ms ease-in-out}ul.share li a{text-decoration:none !important;color:rgba(0,0,0,0.84)}.dark ul.share li a{color:rgba(255,255,255,0.84)}ul.share li:hover i{transform:scale(1.2)}.author-card .avatar{width:60px;height:60px}.author-card .card-title{margin-top:0;margin-bottom:15px;font-weight:600;color:rgba(0,0,0,0.84)}.author-card .card-title a{color:rgba(0,0,0,0.84)}.dark .author-card .card-title,.dark .author-card .card-title a{color:rgba(255,255,255,0.84)}.author-card p{margin-bottom:5px}.author-card .card-subtitle{font-weight:300;font-size:0.8rem;color:rgba(0,0,0,0.54);margin-bottom:7px}.dark .author-card .card-subtitle{color:rgba(255,255,255,0.54)}.author-card .card-text{color:rgba(0,0,0,0.76);font-size:0.8rem;margin-bottom:4px}.dark .author-card .card-text{color:rgba(255,255,255,0.76)}#comments{padding-top:1rem}.article-widget{padding-top:1.2rem}.article-widget h3{margin-top:0}.view-list-item{margin-bottom:1rem}.pub-icon{color:rgba(0,0,0,0.54);font-size:0.81em;padding-right:6px}.view-list-item .article-metadata{margin-bottom:0}.pub-list-item .pub-abstract{font-size:1rem}.pub-list-item .btn-links{padding-top:10px}.media.stream-item{margin-bottom:2rem}.media.stream-item .article-title,.card-simple .article-title{font-size:1.2rem}.media.stream-item .article-style,.card-simple .article-style{margin-top:2px;font-size:0.8rem}.media.stream-item .stream-meta{margin-top:12px}.media.stream-item img{max-width:300px;height:auto;object-fit:cover}@media screen and (max-width: 768px){.media.stream-item img{max-width:80px}}@keyframes intro{0%{opacity:0}100%{opacity:1}}.home-section{background-color:#eae8f0;padding:110px 0 110px 0;animation:intro 0.3s both;animation-delay:0.15s}.home-section.dark,.home-section.dark h1,.home-section.dark h2,.home-section.dark h3,.home-section.dark a:not(.btn){color:#f8f8f2}.home-section.dark a:not(.btn):not(.hero-cta-alt){text-decoration:underline}.home-section.dark .alert a,.home-section.dark .article-style aside a,.article-style .home-section.dark aside a{color:inherit !important;text-decoration:inherit !important}.home-section.bg-image{background-position:center;background-repeat:no-repeat;background-size:cover}.parallax{height:100%;background-attachment:fixed}.home-section:first-of-type{padding-top:50px}.home-section:nth-of-type(even){background-color:#fff}.dark .home-section{background-color:#272935}.dark .home-section:nth-of-type(even){background-color:#23252f}@media screen and (max-width: 768px){.home-section{padding:60px 0 60px 0}.home-section:first-of-type{padding-top:40px}}.section-heading h1{margin:0 0 10px 0}.section-heading p{font-weight:400;font-size:1.1rem;color:#b2b2b2}.see-all{margin-top:2rem;text-transform:uppercase}.dark .alert pre,.dark .article-style aside pre,.article-style .dark aside pre,.dark .alert code,.dark .article-style aside code,.article-style .dark aside code{color:initial;background-color:initial}.wg-hero{padding:3em 0;clear:both;background-size:cover;background-repeat:no-repeat;background-position:center;animation:intro 0.3s both;animation-delay:0s;animation-delay:0.25s}.hero-title{font-size:2.7rem;margin-top:0;line-height:1}.hero-lead{max-width:768px;font-size:1.35rem}.wg-hero.dark .hero-title,.wg-hero.dark .hero-lead,.wg-hero.dark .hero-cta-alt,.wg-hero.dark .hero-note>*{color:#fff}.wg-hero.dark a:not(.wg-hero .btn){color:#fff}.wg-hero .hero-lead a{text-decoration:underline}.wg-hero .cta-btns{margin-bottom:16px}.wg-hero .btn{padding:.6em 2.1em}.wg-hero.dark .btn{color:#3d0c36}a.hero-cta-alt{display:inline-block;position:relative;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out;font-size:1.1rem}a.hero-cta-alt:active,a.hero-cta-alt:focus,a.hero-cta-alt:hover{transform:scale(1.1)}.wg-hero .btn-lg,.wg-hero .btn-group-lg>.btn{font-size:1.1rem}.wg-hero .hero-note{font-size:0.8rem}.hero-media{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.home-section.wg-slider{padding:0;animation:none;animation-delay:unset}.carousel-inner .wg-hero{animation:none;clear:none}.featurette{font-size:0.8rem;line-height:1.5;color:#555;text-align:center}.featurette h3{margin-top:0;margin-bottom:5px;font-weight:400;color:#333}.dark .featurette,.dark .featurette h3{color:#fff}.featurette-icon{display:block;width:100%;color:#68145C;font-size:3rem;text-align:center}#profile{text-align:center;padding:30px 10px;position:relative}.avatar{width:270px;height:270px;margin:0 auto;object-fit:cover}@media (max-width: 767.98px){.wg-about .avatar{width:200px;height:200px}}.avatar-circle{border-radius:50%}.avatar-square{border-radius:3px}.portrait-title h2{font-size:1.75em;font-weight:300;color:#000000;margin:20px 0 10px 0}.portrait-title h3{font-size:1rem;font-weight:300;color:rgba(0,0,0,0.54);margin:0px 0 10px 0}ul.network-icon{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;padding:0;margin:0}#profile .network-icon{margin-top:30px}.network-icon li{margin-right:10px}.network-icon li:last-of-type{margin-right:0}.network-icon li:hover{transform:scale(1.2)}.big-icon{font-size:2rem}ul.ul-interests li{font-size:0.9rem}ul.ul-edu{list-style:none}ul.ul-edu li{position:relative;padding:0px 15px 4px 3px}ul.ul-edu li .description p{margin:0}ul.ul-edu li .description p.course{font-size:0.9rem}ul.ul-edu li .description p.institution{font-size:0.75rem;color:rgba(0,0,0,0.6)}.exp-title{text-transform:none !important}.exp-company{font-weight:normal !important;text-transform:none !important}.exp-meta{font-size:0.8rem}.experience .card-text,.experience .card-text p{color:#000 !important;font-size:0.75rem !important}.dark .experience .text-muted{color:rgba(255,255,255,0.8) !important}.dark .experience .card-text,.dark .experience .card-text p{color:#f8f8f2 !important}.card .card-text ul{margin-top:-1rem;margin-bottom:0rem}.experience .m-2 .border,.experience .col.border-right{border-color:#68145C !important}.experience .m-2 .border.exp-fill{background-color:#68145C !important}.talk-metadata{color:#4b4f56;font-size:0.8rem}.project-widget-simple li{margin-bottom:1rem}.project-widget-simple li:last-of-type{margin-bottom:0}.project-widget-simple .project-title{margin-bottom:6px}.project-widget-simple .project-summary{font-size:0.9rem;margin-bottom:0.4rem}.projects-container{display:block;position:relative;overflow:hidden}.project-toolbar{margin-bottom:2rem}.project-card{position:relative;width:calc(33.3% - 2*20px)}@media screen and (max-width: 1199px){.project-card{width:calc(50% - 20px)}}@media screen and (max-width: 768px){.project-card{width:100%}}.project-item{margin-bottom:1.5rem}.project-card.project-item{margin:0 0 20px 0}.project-card .card{margin:0}.project-showcase .project-item{margin-bottom:3rem}.project-item:last-of-type{margin-bottom:0}.isotope-item{z-index:2}.isotope-item:hover{z-index:3}.card.course{margin-bottom:1rem}.card.course:last-of-type{margin-bottom:0}.course .card-subtitle a{border-bottom:solid 1px transparent}.course .card-subtitle a:hover{border-bottom:solid 1px;text-decoration:none}.people-widget{font-size:0.8rem;text-align:center}.people-widget .portrait-title h2{font-size:1rem}.people-widget .portrait-title h3{font-size:0.7rem}.people-widget .avatar{width:80%;max-width:150px;height:auto}@media (min-width: 576px){.people-widget .col-sm-auto{width:30%}}@media (min-width: 992px){.people-widget .col-sm-auto{width:20%}}.contact-widget .fa-ul{margin-left:3.14285714rem}.contact-widget .fa-li{position:absolute;left:-3.14285714rem;width:2rem;top:0.14285714em;text-align:center}.contact-widget li{padding-top:0.8rem;margin-bottom:0.3rem}.contact-widget li:last-of-type{margin-bottom:0}#map{height:350px;width:100%}.docs-article-container{max-width:760px}.docs .body-footer{border-top:1px solid #e8e8e8;margin-top:30px;padding-top:10px;font-size:14px;color:#707070}.docs-content{order:1;position:relative}.docs-content>h2[id],.docs-content>h3[id],.docs-content>h4[id]{pointer-events:none}.docs-content>ol li,.docs-content>ul li{margin-bottom:.25rem}.docs-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,0.05)}.docs-search .form-control:focus{border-color:#68145C;box-shadow:0 0 0 3px #931c82}.docs-sidebar{order:0;border-bottom:1px solid rgba(0,0,0,0.1)}@media (min-width: 768px){.docs-sidebar{border-right:1px solid rgba(0,0,0,0.1)}@supports (position: -webkit-sticky) or (position: sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:50px;z-index:10;height:calc(100vh - 50px)}}}@media (min-width: 1200px){.docs-sidebar{border-right:1px solid rgba(0,0,0,0.1)}@supports (position: -webkit-sticky) or (position: sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:70px;z-index:10;height:calc(100vh - 70px)}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:0.8rem;color:rgba(0,0,0,0.65)}.docs-sidebar .nav>li>a:hover{color:rgba(0,0,0,0.85);text-decoration:none;background-color:transparent}.docs-sidebar .docs-toc-item.active a,.docs-sidebar .nav>.active:hover>a,.docs-sidebar .nav>.active>a{font-weight:bold;color:#68145C;background-color:transparent}.docs-toggle{line-height:1;font-size:1.2rem;color:#68145C;background-color:transparent}.docs-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width: 768px){@supports (position: -webkit-sticky) or (position: sticky){.docs-links{max-height:calc(100vh - 5rem - 70px);overflow-y:auto}}}@media (min-width: 768px){.docs-links{display:block !important}}.docs-toc{order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports (position: -webkit-sticky) or (position: sticky){.docs-toc{position:-webkit-sticky;position:sticky;top:70px;height:calc(100vh - 70px);overflow-y:auto}}.docs-toc-link{display:block;padding:.25rem 1.5rem;font-weight:bold;color:rgba(0,0,0,0.65)}.docs-toc-link:hover{color:rgba(0,0,0,0.85);text-decoration:none}.docs-toc-item.active{margin-bottom:1rem}.docs-toc-item.active:not(:first-child){margin-top:1rem}.docs-toc-item.active>.docs-toc-link{color:rgba(0,0,0,0.85)}.docs-toc-item.active>.docs-toc-link:hover{background-color:transparent}.docs-sidenav{display:block}.docs-toc-title{color:#b5b5b5;font-size:.875rem;font-weight:600;padding-left:calc(1.5rem + 1px)}#TableOfContents{padding-left:0;border-left:1px solid #eee}#TableOfContents ul,ul.toc-top{padding-left:0}#TableOfContents ul ul{padding-left:0.8rem}#TableOfContents li{display:block}#TableOfContents li a,.toc-top li a{display:block;padding:.125rem 1.5rem;color:#99979c;font-size:0.7rem}#TableOfContents li a:hover,.toc-top li a:hover{color:#68145C;text-decoration:none}#TableOfContents li a.active{color:#68145C;font-weight:700}.anchorjs-link{font-weight:400;color:#3d0c36;transition:color .16s linear}.anchorjs-link:hover{color:#68145C;text-decoration:none}body.dark,.dark .docs-toc-link,.dark .docs-sidebar .nav>li:not(.active)>a,.dark .modal button.close,.dark input,.dark .form-control,.dark .form-control:focus{color:#f8f8f2;background:#282a36}.dark .form-control{background-color:#44475a}.dark .form-control:focus{background-color:#44475a;border-color:#68145C;box-shadow:0 0 0 0.2rem #3d0c36}.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#98a6ad}.dark pre,.dark code{color:#8be9fd;background-color:#44475a}.dark pre{background-color:#44475a;border-color:#44475a}.dark .markup-quote{background-image:linear-gradient(to bottom, rgba(233,231,245,0.2), rgba(233,231,245,0.2))}.dark #MathJax_Zoom{background-color:#44475a !important}.dark table table{background-color:#282a36}.dark table>tbody>tr:nth-child(odd)>td,.dark table>tbody>tr:nth-child(odd)>th{background-color:#323440}.dark table>tbody>tr:hover>td,.dark table>tbody>tr:hover>th{background-color:#3c3e4a}.dark .article-title a{color:#fff}.dark .portrait-title h2{color:#fff}.dark .portrait-title h3{color:rgba(255,255,255,0.54)}.dark ul.ul-edu li .description p.institution{color:rgba(255,255,255,0.6)}.dark .pub-icon{color:rgba(255,255,255,0.54)}.dark .talk-metadata{color:rgba(255,255,255,0.54)}.dark .pagination li>a,.pagination li>span{background-color:#282a36;border:1px solid #ddd}.dark .card{background:#343a40}.dark .card h4 a{color:#68145C;border-bottom:solid 1px transparent}.dark .card .card-image.hover-overlay::before{background:#666}.dark .card .card-image.hover-overlay::after{color:#fff}.dark select{background:#282a36;color:#f8f8f2}.dark .badge-light{color:rgba(255,255,255,0.68);background:rgba(255,255,255,0.2)}.dark .badge-light[href]:focus,.dark .badge-light[href]:hover{background:rgba(255,255,255,0.3)}.dark a.badge:focus,.dark a.badge:hover{color:rgba(255,255,255,0.68)}.dark .btn-primary,.dark .btn.btn-primary.active{color:initial}div.mermaid{width:100%;text-align:center;margin-bottom:1rem}html[dir="rtl"] body{text-align:right}.gradient-orange{background-image:linear-gradient(-45deg, #e87308, #F88D2B)}.gradient-orange-darken{background-image:linear-gradient(-45deg, #f78217 0, #f8953a 70%)}.gradient-orange-darken-hover{background-image:linear-gradient(-45deg, #f78217 -30%, #f8953a 40%)}.gradient-purple{background-image:linear-gradient(-45deg, #3d0c36, #68145C)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-navy{background-image:linear-gradient(-45deg, #19132e, #2D2252)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-white-darken,.wg-page-header .features .feature .feature-inner,.mosaic-btn-light{background-image:linear-gradient(-45deg, #f5f5f5 0, #fff 70%)}.gradient-orange-purple,.mosaic-btn-primary{background-image:linear-gradient(-45deg, #68145C, #F88D2B)}.gradient-orange-purple-dark,ul.menu-overview>li span.inner .link-wrap a:hover{background-image:linear-gradient(-45deg, #68145C, #F88D2B 150%)}.gradient-purple-navy{background-image:linear-gradient(-45deg, #2D2252, #68145C)}.gradient-purple-navy-hover{background-image:linear-gradient(-45deg, #251c44 -30%, #751667 40%)}.gradient-orange-purple-navy,.gradient-footer,.footer-wrap,.gradient-header,.wg-page-header::before,.wg-hero{background-image:linear-gradient(-45deg, #2D2252 10%, #68145C 50%, #F88D2B 100%)}.gradient-header,.wg-page-header::before,.wg-hero{background-image:linear-gradient(135deg, #0F0433 20%, #68145C 50%, #F88D2B 100%);background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.gradient-footer,.footer-wrap{background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.mosaic-card,.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner,.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner{padding:0 1.3rem;border-radius:1rem}.mosaic-card h2.mosaic-card-title,.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title,.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title{font-size:1.3rem;padding-top:1.1rem;padding-bottom:0.6rem;position:relative;text-align:left}.mosaic-card h2.mosaic-card-title::after,.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after,.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after{left:0;bottom:0;right:0;content:"";height:3px;position:absolute;border-radius:1rem}.mosaic-card h3.mosaic-card-subtitle,.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle,.mosaic-card-light h3.mosaic-card-subtitle,.wg-text-card .card.with-background h3.mosaic-card-subtitle,.wg-features-widget .feature .feature-inner h3.mosaic-card-subtitle{font-size:1rem}.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner{background-color:#fff;box-shadow:0.4rem 0.5rem 0.5rem rgba(45,44,47,0.1)}.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after{background-image:linear-gradient(-45deg, #f1edf4, #fff)}.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner{background-color:#ede9f0;background-image:linear-gradient(-45deg, #e5e0ea, #fefdff);box-shadow:0.2rem 0.3em 0.2rem rgba(24,21,30,0.17),inset 0 0 1px #aaa}.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after{background-image:linear-gradient(90deg, #F88D2B, #2D2252)}.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle{text-shadow:1px 1px 0 rgba(255,255,255,0.8)}.card{border:0;border-radius:1rem;background-color:#ede9f0;background-image:linear-gradient(-45deg, #efedf4, #fdfdff 60%);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}.card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}section:nth-of-type(2n + 1) .card{background-image:linear-gradient(-45deg, #efedf4, #fff);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}section:nth-of-type(2n + 1) .card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}.alert,.article-style aside,div.alert>div{font-size:0.75rem;border-radius:0.8rem}div.alert.alert-extended{color:#120410;background-color:#fae7f8;border-color:#68145C;position:relative}div.alert.alert-extended .extended-icon{position:absolute;display:block;content:"";background-position:center center;background-size:145%;width:2.5rem;height:2.5rem;left:0.4rem;top:47%;margin-top:-1.15rem}div.alert.alert-extended>div:first-child::before{content:none;display:none}div.alert.alert-learning_objectives{color:#406210;background-color:#f7fcef;border-color:#7ABA1E}div.alert.alert-learning_objectives>div:first-child::before{content:'\f19d';color:#7ABA1E;font-size:1.3rem;top:-0.4rem;left:-2.3rem}div.alert.alert-learning_objectives h3{font-size:1rem;margin:0.2rem 0 0.3rem;color:#38550e}div.alert.alert-learning_objectives ul li{list-style-type:none;position:relative;margin-bottom:0.2rem}div.alert.alert-learning_objectives ul li::before{font-family:'Font Awesome 5 Free';font-weight:900;font-size:0.7rem;line-height:0;content:'\f00c';position:absolute;left:-1.1rem;top:0.7rem}div.alert.alert-tip{color:#406210;background-color:#f7fcef;border-color:#7ABA1E}div.alert.alert-tip>div:first-child::before{content:'\f06a';color:#7ABA1E}div.alert.alert-note{color:#00567c;background-color:#f6fcff;border-color:#009DE2}div.alert.alert-note>div:first-child::before{color:#009DE2}div.alert.alert-warning{color:#9e4e05;background-color:#feead8;border-color:#F88D2B}div.alert.alert-warning>div:first-child::before{color:#F88D2B;left:-2.4rem}.mosaic-btn{display:inline-block;text-decoration:none !important;border:2px solid #fff;border-radius:30px;padding:10px 25px;font-size:medium;font-weight:bold;margin:1rem 1rem 1rem 0;transition:all 0.16s ease}.mosaic-btn:hover,.mosaic-btn:focus{background-color:#fff;color:#68145C}.mosaic-btn i{transition:all 0.16s ease;margin-right:0.3rem}.mosaic-btn-light{color:#68145C !important;border-color:#fff;background-color:#fff}.mosaic-btn-light:hover,.mosaic-btn-light:focus{background-color:transparent;color:#fff !important;border-color:#fff;background-image:none}.mosaic-btn-primary{color:#fff;border-width:0;background-image:linear-gradient(-45deg, #68145C 0%, #BB86B3 100%)}.mosaic-btn-primary:hover,.mosaic-btn-primary:focus{color:#fff;background-image:linear-gradient(-45deg, #872E51 0%, #F88D2B 210%)}.mosaic-btn-secondary{color:#fff;border-width:0;background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.mosaic-btn-secondary:hover,.mosaic-btn-secondary:focus{color:#fff;background-image:linear-gradient(-45deg, #872E51 0%, #F88D2B 210%)}.docs{max-width:1700px}.docs .article h1{font-size:1.4rem}.docs .article h2{font-size:1.1rem}.docs .article h3{font-size:1rem;font-weight:normal}.docs-article-container{max-width:none}.docs-article-container table{display:table}.docs-content{padding-bottom:0 !important}.docs .article{font-size:0.8rem}.docs .article h1{font-size:1.45rem}.docs .article h2{font-size:1.3rem}.docs-search{margin-left:0;padding-left:0;margin-bottom:0}.docs-search .form-control{font-size:0.84rem}.docs-search .form-control:focus{box-shadow:0 0 0 1px #931c82}.docs-nav{padding-left:15px}a.docs-toc-link{border-top:1px solid #e7e4ea;background-color:#f9f7fb;border-bottom:1px solid #e7e4ea}a.docs-toc-link:hover{color:#68145C}.docs-toc-item{margin-bottom:0.5rem}.nav.docs-sidenav li{margin:0 0 0 1.1rem;padding:0.1rem 1rem 0.1rem 1.1rem;position:relative;border-top-left-radius:0.3rem;border-bottom-left-radius:0.3rem}.nav.docs-sidenav li.active{background-color:#931c82}.nav.docs-sidenav li.active::before,.nav.docs-sidenav li.active a:hover,.nav.docs-sidenav li.active a{color:#fff;font-weight:normal}.nav.docs-sidenav li:hover:not(.active){background-color:#f9f7fb}.nav.docs-sidenav li:hover:not(.active) a{font-weight:normal;color:#68145C}.nav.docs-sidenav li::before{content:"▶︎";position:absolute;top:0.44rem;left:0.4rem;font-size:0.45rem;color:#931c82}.nav.docs-sidenav li>a{padding:0;font-weight:normal !important}.docs-toc{overflow-y:visible}#TableOfContents li a,.toc-top li a{color:#79777d}@media screen and (max-width: 576px){.docs-sidebar{max-height:calc(100vh - 50px);overflow-y:scroll;position:fixed;z-index:1;background-color:#fff}.docs-content{margin-top:70px}}#search div.logo{width:100%;height:80px;background-position:-21px -24px;background-repeat:no-repeat;background-size:256px}#search .col-search-close{position:relative}#search .col-search-close a.js-search{position:absolute;right:0;bottom:0}@media screen and (max-width: 576px){#search .container{padding-top:0}#search div.logo{background-size:50%;background-position:-13px -14px;height:47px}}.gradient-orange{background-image:linear-gradient(-45deg, #e87308, #F88D2B)}.gradient-orange-darken{background-image:linear-gradient(-45deg, #f78217 0, #f8953a 70%)}.gradient-orange-darken-hover{background-image:linear-gradient(-45deg, #f78217 -30%, #f8953a 40%)}.gradient-purple{background-image:linear-gradient(-45deg, #3d0c36, #68145C)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-navy{background-image:linear-gradient(-45deg, #19132e, #2D2252)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-white-darken,.wg-page-header .features .feature .feature-inner,.mosaic-btn-light{background-image:linear-gradient(-45deg, #f5f5f5 0, #fff 70%)}.gradient-orange-purple,.mosaic-btn-primary{background-image:linear-gradient(-45deg, #68145C, #F88D2B)}.gradient-orange-purple-dark,ul.menu-overview>li span.inner .link-wrap a:hover{background-image:linear-gradient(-45deg, #68145C, #F88D2B 150%)}.gradient-purple-navy{background-image:linear-gradient(-45deg, #2D2252, #68145C)}.gradient-purple-navy-hover{background-image:linear-gradient(-45deg, #251c44 -30%, #751667 40%)}.gradient-orange-purple-navy,.gradient-header,.wg-page-header::before,.wg-hero,.gradient-footer,.footer-wrap{background-image:linear-gradient(-45deg, #2D2252 10%, #68145C 50%, #F88D2B 100%)}.gradient-header,.wg-page-header::before,.wg-hero{background-image:linear-gradient(135deg, #0F0433 20%, #68145C 50%, #F88D2B 100%);background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.gradient-footer,.footer-wrap{background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.mosaic-card,.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner,.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner{padding:0 1.3rem;border-radius:1rem}.mosaic-card h2.mosaic-card-title,.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title,.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title{font-size:1.3rem;padding-top:1.1rem;padding-bottom:0.6rem;position:relative;text-align:left}.mosaic-card h2.mosaic-card-title::after,.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after,.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after{left:0;bottom:0;right:0;content:"";height:3px;position:absolute;border-radius:1rem}.mosaic-card h3.mosaic-card-subtitle,.mosaic-card-light h3.mosaic-card-subtitle,.wg-text-card .card.with-background h3.mosaic-card-subtitle,.wg-features-widget .feature .feature-inner h3.mosaic-card-subtitle,.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle{font-size:1rem}.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner{background-color:#fff;box-shadow:0.4rem 0.5rem 0.5rem rgba(45,44,47,0.1)}.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after{background-image:linear-gradient(-45deg, #f1edf4, #fff)}.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner{background-color:#ede9f0;background-image:linear-gradient(-45deg, #e5e0ea, #fefdff);box-shadow:0.2rem 0.3em 0.2rem rgba(24,21,30,0.17),inset 0 0 1px #aaa}.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after{background-image:linear-gradient(90deg, #F88D2B, #2D2252)}.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle{text-shadow:1px 1px 0 rgba(255,255,255,0.8)}.card{border:0;border-radius:1rem;background-color:#ede9f0;background-image:linear-gradient(-45deg, #efedf4, #fdfdff 60%);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}.card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}section:nth-of-type(2n + 1) .card{background-image:linear-gradient(-45deg, #efedf4, #fff);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}section:nth-of-type(2n + 1) .card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}.footer-wrap{color:#fff;padding:0.3rem 0 0}.footer-wrap a.back-to-top i,.footer-wrap a{color:#fff}.footer-wrap footer.site-footer{margin:0;font-size:0.7rem}.footer-wrap footer.site-footer b{position:relative;display:inline-block;width:100%;padding-bottom:0.1rem;margin-bottom:0.4rem}.footer-wrap footer.site-footer b::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#fff}.footer-wrap footer.site-footer ul{margin:0;padding:0}.footer-wrap footer.site-footer ul li{padding:0;margin:0;list-style-type:none}.footer-wrap footer.site-footer ul li a{font-weight:normal}.footer-wrap footer.site-footer ul li .eclipse-logo{height:2rem;padding:0.2rem 0}.footer-wrap footer.site-footer .powered-by{font-size:0.6rem;color:rgba(255,255,255,0.7)}.footer-wrap footer.site-footer .powered-by a{color:rgba(255,255,255,0.7)}.docs footer.site-footer{margin-left:-1.5rem;margin-top:1rem;padding:2rem 3rem 1.6rem;font-size:0.7rem;background:#f2f2f7;width:calc(100% + 3rem)}.docs footer.site-footer b{position:relative;display:inline-block;width:100%;padding-bottom:0.1rem;margin-bottom:0.4rem}.docs footer.site-footer b::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#d9d9d9}.docs footer.site-footer ul{margin:0;padding:0}.docs footer.site-footer ul li{padding:0;margin:0;list-style-type:none}.docs footer.site-footer ul li a{font-weight:normal;color:#2D2252}.docs footer.site-footer ul li .eclipse-logo{height:2rem;padding:0.2rem 0}.docs footer.site-footer .powered-by{font-size:0.6rem;color:rgba(0,0,0,0.5)}.docs footer.site-footer .powered-by a{color:rgba(0,0,0,0.5)}.svg-wrap{text-align:center}.svg-wrap .inner{display:inline-block;padding:0.6rem;text-align:center;background-color:#f9f9fb;border-radius:0.4rem;border:1px solid #cbcbce;max-width:100%}.svg-wrap .inner svg .messageText{stroke:transparent !important;font-family:"Lato", sans-serif !important}.svg-wrap .inner svg g,.svg-wrap .inner svg text{font-family:"Lato", sans-serif !important;line-height:1}.svg-wrap .inner svg div{font-family:"Lato", sans-serif !important;line-height:0.9rem;font-size:0.7rem}.svg-wrap .desc{padding-top:0.4rem;font-style:italic;color:#555}ul.menu-overview{padding:0;margin:1rem -15px}ul.menu-overview>li{list-style-type:none;margin-bottom:2rem;display:flex;width:100%}ul.menu-overview>li span.inner{padding:1rem 1.3rem 3rem;width:100%;position:relative;overflow:hidden}ul.menu-overview>li span.inner .title{display:block;font-weight:bold;font-size:0.9rem;padding-bottom:0.2rem}ul.menu-overview>li span.inner .subtitle img{margin:0.3rem 0 0.7rem;border:1px solid #ddd;border-radius:0.2rem;width:100%}ul.menu-overview>li span.inner .subtitle ul{padding-left:1.2rem;margin-top:-0.7rem}ul.menu-overview>li span.inner .subtitle ul li{list-style-type:none;position:relative}ul.menu-overview>li span.inner .subtitle ul li::marker{color:#777}ul.menu-overview>li span.inner .subtitle ul li::before{font-family:'Font Awesome 5 Free';font-weight:900;font-size:0.7rem;line-height:0;content:'\f00c';position:absolute;left:-1.1rem;top:0.7rem;color:#4f7813}ul.menu-overview>li span.inner .link-wrap{text-align:center;width:100%;display:block;position:absolute;left:0;bottom:0}ul.menu-overview>li span.inner .link-wrap a{display:block;margin:0;position:relative;padding-left:1.8rem;border-radius:0;background-color:#68145C;text-align:left}ul.menu-overview>li span.inner .link-wrap a::before{content:"»";font-size:1.1rem;position:absolute;left:1rem;top:1rem;line-height:0}ul.menu-overview>li span.inner .details{display:block;text-align:right;background:#e1dce6;color:#424b5f;text-decoration:none;font-weight:bold;font-size:medium;margin:1rem -1rem -0.7rem;margin-top:auto;padding:0.4rem 1rem;border-top:1px solid #d5c4d3;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}ul.menu-overview>li span.inner .details::before{content:"» ";font-size:larger;color:#424b5f;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}.wg-cards .cards{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap}.wg-cards .cards .overlay{top:-1rem;left:-1rem;right:-1rem;bottom:-1rem;width:calc(100% + 2rem);max-width:calc(100% + 2rem);background-color:rgba(255,255,255,0);-webkit-transition:background-color ease-in-out 1s;transition:background-color ease-in-out 1s}.wg-cards .cards .overlay.active{height:100%;z-index:100;background-color:rgba(255,255,255,0.8)}.wg-cards .cards .banner{position:absolute;left:2px;top:1.5rem;padding:7px 20px 7px 29px;background-color:#dad7df;border-top-left-radius:2px;border-top-right-radius:4px;border-bottom-right-radius:4px;box-shadow:3px 3px 2px rgba(0,0,0,0.2);text-shadow:1px 1px 0 rgba(255,255,255,0.3);z-index:1}.wg-cards .cards .banner::before{content:"";position:absolute;left:0;bottom:-13px;border:7px solid #9f9ba6;border-left-color:transparent !important;border-bottom-color:transparent !important}.wg-cards .cards .banner.mosaic-orange{background-color:#F88D2B;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-orange::before{border-color:#d06707}.wg-cards .cards .banner.mosaic-blue{background-color:#009DE2;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-blue::before{border-color:#006896}.wg-cards .cards .banner.mosaic-purple{background-color:#68145C;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-purple::before{border-color:#3d0c36}.wg-cards .cards .banner.mosaic-green{background-color:#7ABA1E;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-green::before{border-color:#4f7813}.wg-cards .cards .banner .subtitle{display:block;font-size:0.6rem;font-style:italic}.wg-cards .cards .banner .title{display:block;font-size:0.7rem;font-weight:bold}.wg-cards .cards .banner .title:not(.no-subtitle){margin-top:-0.2rem}.wg-cards .cards .card-wrap.blurred{filter:blur(2px);-webkit-filter:blur(2px)}.wg-cards .cards .card{height:100%;display:flex;flex-direction:column;position:relative}.wg-cards .cards .card .image img{height:auto;max-height:100%;max-weight:100%;transform:scale(1);transition:transform ease-in-out 0.2s}.wg-cards .cards .card .image a{width:100%;height:100%}.wg-cards .cards .card .image a img{max-width:100%;max-height:100%}.wg-cards .cards .card .image a img:hover{transform:scale(1.06)}.wg-cards .cards .card h4{text-transform:none}.wg-cards .cards .card .text{font-size:0.8rem}.wg-cards .cards .card .open-hidden-content{position:absolute;bottom:0;left:0;right:0;width:100%}.wg-cards .cards .card .button{position:absolute;bottom:0;left:0;right:0;width:100%}.wg-cards .cards .card .button a{display:block;margin:0;border-radius:0;padding:0.6rem 1.5rem}.wg-cards .cards .hidden-content{display:none;height:auto;z-index:100;opacity:0;transform:scale(0.7);box-shadow:0 1.3em 1.4rem 1rem rgba(24,21,30,0.17),inset 0 0 1px #aaa !important;-webkit-transition:all ease-in-out 0.6s;transition:all ease-in-out 0.6s}.wg-cards .cards .hidden-content.visible{transform:scale(1);display:block;opacity:1}.wg-cards .cards .hidden-content .close{z-index:1}.wg-cards .cards .hidden-content .close a i{color:#2D2252}.wg-cards .cards .hidden-content .text h3{font-size:1.1rem}.wg-cards .cards .hidden-content .text p{font-size:0.8rem}.wg-features-widget .feature{position:relative}.wg-features-widget .feature.feature-clone{position:absolute;z-index:10}.wg-features-widget .feature .banner{position:absolute;left:1px;top:1rem;padding:7px 20px 7px 29px;background-color:#dad7df;border-top-left-radius:2px;border-top-right-radius:4px;border-bottom-right-radius:4px;box-shadow:3px 3px 2px rgba(0,0,0,0.2);text-shadow:1px 1px 0 rgba(255,255,255,0.3)}.wg-features-widget .feature .banner::before{content:"";position:absolute;left:0;bottom:-14px;border:7px solid #9f9ba6;border-left-color:transparent !important;border-bottom-color:transparent !important}.wg-features-widget .feature .banner.mosaic-orange{background-color:#F88D2B;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-orange::before{border-color:#d06707}.wg-features-widget .feature .banner.mosaic-blue{background-color:#009DE2;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-blue::before{border-color:#006896}.wg-features-widget .feature .banner.mosaic-purple{background-color:#68145C;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-purple::before{border-color:#3d0c36}.wg-features-widget .feature .banner.mosaic-green{background-color:#7ABA1E;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-green::before{border-color:#4f7813}.wg-features-widget .feature .banner .subtitle{display:block;font-size:0.6rem;font-style:italic}.wg-features-widget .feature .banner .title{display:block;font-size:0.7rem;font-weight:bold}.wg-features-widget .feature .banner .title:not(.no-subtitle){margin-top:-0.2rem}.wg-features-widget .feature .feature-inner{height:100%;font-size:0.8rem}.wg-features-widget .feature .feature-inner.has-banner{padding-top:2rem}.wg-features-widget .feature .feature-inner h3{margin-top:1rem}.wg-features-widget .feature .feature-inner .content{display:none;opacity:0}.wg-features-widget .feature .feature-inner .buttons{text-align:center}.wg-features-widget .feature .feature-inner .buttons a{margin-top:0;margin-right:0}.wg-hero{padding:40px 0}.wg-hero h1{font-size:larger}.wg-hero p{font-size:large}.wg-page-header{background-color:#ffffff;position:relative;padding-bottom:30px;overflow:hidden;margin-bottom:-80px}.wg-page-header::before{position:absolute;content:'';bottom:80px;width:100%;height:100%}.wg-page-header::after{position:absolute;content:'';bottom:80px;left:50%;transform:translateX(-50%);width:120%;height:120%;box-shadow:inset 0 0 20px 10px rgba(35,27,64,0.5),0 0 40px 10px rgba(217,206,215,0.8);border-bottom:2px solid #d9ced7}.wg-page-header>.container{position:relative;z-index:1}.wg-page-header h1,.wg-page-header h2,.wg-page-header h3,.wg-page-header h4,.wg-page-header h5,.wg-page-header h6{color:#fff}.wg-page-header .page-header-background{position:absolute;content:'';bottom:80px;left:0;width:100%;height:100%;background-repeat:no-repeat;background-size:100% 100%;background-position:bottom right}.wg-page-header .alignment-left{padding-top:2.3rem;padding-bottom:2.5rem}.wg-page-header .alignment-left .page-header-logo img{max-width:none;margin:-4.49rem 0 -2.8rem -1.9rem}.wg-page-header .alignment-left .section-heading{margin-left:9.6rem}.wg-page-header .alignment-left .section-heading p{color:#fff;font-style:normal;font-size:1.05rem}.wg-page-header .alignment-left .buttons{margin-bottom:0}.wg-page-header .alignment-left .buttons a.mosaic-btn{margin-top:0;margin-bottom:0.7rem;padding:0.4rem 1.2rem;min-width:9.4rem;text-align:left;margin-right:-0.7rem;font-size:0.8rem}.wg-page-header .alignment-center .section-heading h1{font-size:1.8rem}.wg-page-header .alignment-center .section-heading p{color:#fff;font-size:1rem}.wg-page-header .buttons .button{text-align:center}.wg-page-header .buttons .button a.mosaic-btn{margin:0 0.5rem}.wg-page-header .features .feature{display:flex;display:-webkit-flex;flex-wrap:wrap}.wg-page-header .features .feature .feature-inner{background-color:#fff;width:100%;color:#424b5f;padding:1.4rem;border:0;overflow:hidden;height:100%;border-radius:1rem;box-shadow:0.4rem 0.5rem 0.5rem rgba(45,44,47,0.2);transition:all 0.2s ease;-webkit-transition:all 0.2s ease}.wg-page-header .features .feature .feature-inner.is-linked-feature:hover{transform:scale(1.04);background-image:none;box-shadow:0 10px 20px -10px rgba(45,34,82,0.8)}.wg-page-header .features .feature .feature-inner.is-linked-feature:hover p.feature-link{background-image:linear-gradient(-45deg, #872E51 0%, #F88D2B 210%)}.wg-page-header .features .feature .feature-inner h3{margin-top:0;font-size:unset;color:#2D2252}.wg-page-header .features .feature .feature-inner h3 i{font-size:0.8rem;margin-right:0.3rem}.wg-page-header .features .feature .feature-inner a.linked-feature{color:#424b5f;text-decoration:none;margin:0;padding:0}.wg-page-header .features .feature .feature-inner a.linked-feature p{font-weight:normal}.wg-page-header .features .feature .feature-inner p{font-size:medium}.wg-page-header .features .feature .feature-inner p.feature-link{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%);color:#fff;margin:1rem -1.4rem -1.4rem;padding:0.4rem 1.4rem 0.5rem;border-top:1px solid #d5c4d3;text-decoration:none;font-weight:bold !important;font-size:medium;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}.wg-page-header .features .feature .feature-inner p.feature-link::before{content:"› ";font-size:larger;color:#fff;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}.wg-page-header .features .feature .feature-inner a.feature-link:hover{color:#2D2252}.wg-page-header .features .feature .feature-inner a.feature-link:hover::before{padding-right:3px}@media screen and (max-width: 576px){.wg-page-header .alignment-left .page-header-logo img{max-width:none;margin:-4.49rem 0 -2.8rem -2.1rem;width:120%}.wg-page-header .alignment-left .section-heading{margin-left:0;width:100%;padding:2rem 1.5rem 0;text-align:center !important}.wg-page-header .alignment-left .section-heading p{font-size:1.15rem;margin-bottom:0}}body.page-community .wg-page-header,body.page-home .wg-page-header{margin-bottom:0;padding-bottom:3rem}body.page-community .wg-page-header,body.page-home .wg-page-header{padding-bottom:3.3rem}body.page-home .page-header{margin-bottom:-1.9rem}body.page-community .wg-page-header .page-header{margin-bottom:-2.87rem}@media screen and (max-width: 576px){.wg-page-header{padding-bottom:4rem !important}}.wg-portfolio .projects-container{overflow:visible}.wg-portfolio .card{padding:0}.wg-portfolio .card .card-image{margin:2.2rem 2.6rem 0}.wg-portfolio .card .card-text{padding:0 1.3rem 1.3rem}.wg-portfolio .card .card-text p{color:inherit;font-size:0.8rem}.wg-portfolio .project-showcase .project-item{margin-bottom:4.5rem}.wg-portfolio .project-showcase .project-item h3{font-size:1.4rem;padding-bottom:0.9rem}.wg-portfolio .project-showcase .project-item img{border-radius:0.7rem}.article-metadata{margin-top:0.7rem;padding-top:0.5rem;border-top:2px dotted #bbb}h3.article-title{font-size:1.3rem}@media screen and (max-width: 576px){.wg-portfolio .project-showcase .project-item{margin-bottom:0.5rem}}.wg-projects .projects .project{padding-bottom:1rem;margin-bottom:1rem;border-bottom:2px dotted #ccc}.wg-projects .projects .project:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.wg-projects .projects .project .text{padding-left:2rem}.wg-projects .projects .project .text h2{font-size:1.1rem;margin:0 0 0.3rem 0}.wg-projects .projects .project .text h3{font-size:0.9rem;margin:0 0 0.1rem 0}.wg-projects .projects .project .text .desc{font-size:0.8rem}.wg-text-image .text-and-buttons p{font-size:0.86rem}.wg-text-image .title{text-align:center;padding-bottom:0.8em}.wg-text-image .buttons a.mosaic-btn{margin-top:0;margin-bottom:0}.wg-text-card .card.without-background{box-shadow:none;border:0;border-radius:0}.wg-text-card .card.without-background h2{font-size:1.3rem;padding-top:1.1rem;padding-bottom:0.6rem;position:relative;text-align:left;color:#2D2252}.wg-text-card .card.without-background h2::after{left:0;bottom:0;right:0;content:"";height:3px;background-image:linear-gradient(90deg, #F88D2B, #2D2252);position:absolute;border-radius:1rem}.wg-text-card .card.without-background h3{font-size:1.1rem}.wg-text-card .card.without-background .card-body p{font-size:0.85rem !important}.wg-text-card .card.without-background .card-footer{background:none;border:0;flex:1 1 auto;min-height:1px;padding:0 1.25rem}.wg-text-card .card.without-background .card-footer a.mosaic-btn{margin:0}.wg-text-card .card .card-text h3:first-child{margin-top:0;padding-top:0}.wg-text-card .card .card-image{padding-top:0.75rem}body{font-size:0.9rem}.navbar-brand img{max-height:46px;height:200px}@media screen and (max-width: 576px){.navbar-brand img{max-height:34px}}.article-style{font-size:0.8rem}a,h3.article-title a{color:#68145C}a:hover,h3.article-title a:hover{color:#F88D2B}a{font-weight:bold;color:#990c86;transition:all ease-in-out 0.1s !important;-webkit-transition:all ease-in-out 0.1s !important}table a{color:#68145C}nav a{color:#2D2252;font-weight:normal}nav a,h3.article-title a{text-decoration:none}h1,h2,h3,h4,h5,h6{color:#2D2252}h1{font-size:1.75rem}hr{height:0}.todo{background-color:yellow;border-radius:2px;border:1px solid red;padding:2px 3px}.todo::before{content:"TODO: ";font-weight:bold;text-decoration:underline}body.page-docs #navbar-main>.container{max-width:1700px}@media only screen and (min-width: 1001px){.universal-wrapper{width:1200px}}#navbar-main{background-color:#f8f4fb}#navbar-main .main-menu-item ul li .nav-link{color:#2D2252}#navbar-main .main-menu-item ul li .nav-link.active{color:#68145C !important;text-decoration:underline}#navbar-main .navbar-icons .nav-item .nav-link{color:#2D2252}.home-section{padding:50px 0 70px}@media screen and (max-width: 576px){.home-section{padding:1rem 0}}.section-heading h1{margin-bottom:1rem}.section-heading p{color:#817f88;font-style:italic}.features .feature .feature-inner .image{width:100%;text-align:center;background-size:contain;background-position:bottom center;background-repeat:no-repeat}.partner-logos{border-top:2px dotted #ccc;padding-top:3rem}.partner-logos a img{transform:scale(1);-webkit-transition:transform ease-in-out 0.2s;transition:transform ease-in-out 0.2s}.partner-logos a img:hover{transform:scale(1.07)}
+ */:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--primary: #68145C;--secondary: #6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: #dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#68145C;text-decoration:none;background-color:transparent}a:hover{color:#280823;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:rgba(0,0,0,0.54);text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1200px}}.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1200px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#d5bdd1}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#b085aa}.table-hover .table-primary:hover{background-color:#cbadc6}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#cbadc6}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#d6d8db}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>th,.table-success>td{background-color:#c3e6cb}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>th,.table-info>td{background-color:#bee5eb}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffeeba}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5c6cb}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark th,.table-dark td,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#d329bb;outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:rgba(0,0,0,0.54)}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,0.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#28a745}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#28a745}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#28a745}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#28a745}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,0.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#dc3545}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#dc3545}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#dc3545}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#68145C;border-color:#68145C}.btn-primary:hover{color:#fff;background-color:#480e40;border-color:#3d0c36}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#480e40;border-color:#3d0c36;box-shadow:0 0 0 .2rem rgba(127,55,116,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#68145C;border-color:#68145C}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary.active:not(:disabled):not(.disabled),.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#3d0c36;border-color:#330a2d}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary.active:not(:disabled):not(.disabled):focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(127,55,116,0.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus,.btn-secondary.focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary.active:not(:disabled):not(.disabled),.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary.active:not(:disabled):not(.disabled):focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,0.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled):active,.btn-success.active:not(:disabled):not(.disabled),.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success.active:not(:disabled):not(.disabled):focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,0.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled):active,.btn-info.active:not(:disabled):not(.disabled),.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info.active:not(:disabled):not(.disabled):focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,0.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning:focus,.btn-warning.focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning.active:not(:disabled):not(.disabled),.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning.active:not(:disabled):not(.disabled):focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,0.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger.active:not(:disabled):not(.disabled),.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger.active:not(:disabled):not(.disabled):focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light.active:not(:disabled):not(.disabled),.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light.active:not(:disabled):not(.disabled):focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark.active:not(:disabled):not(.disabled),.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark.active:not(:disabled):not(.disabled):focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-outline-primary{color:#68145C;border-color:#68145C}.btn-outline-primary:hover{color:#fff;background-color:#68145C;border-color:#68145C}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(104,20,92,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#68145C;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary.active:not(:disabled):not(.disabled),.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#68145C;border-color:#68145C}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(104,20,92,0.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary.active:not(:disabled):not(.disabled),.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success.active:not(:disabled):not(.disabled),.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info.active:not(:disabled):not(.disabled),.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning.active:not(:disabled):not(.disabled),.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger.active:not(:disabled):not(.disabled),.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light.active:not(:disabled):not(.disabled),.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark.active:not(:disabled):not(.disabled),.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-link{font-weight:400;color:#68145C;text-decoration:none}.btn-link:hover{color:#280823;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input.btn-block[type="submit"],input.btn-block[type="reset"],input.btn-block[type="button"]{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#68145C}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#68145C;background-color:#68145C}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#d329bb}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#de51c9;border-color:#de51c9}.custom-control-input[disabled]~.custom-control-label,.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input[disabled]~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50% / 50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#68145C;background-color:#68145C}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(104,20,92,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#d329bb;outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#d329bb;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.custom-file-input[disabled]~.custom-file-label,.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(104,20,92,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(104,20,92,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(104,20,92,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#68145C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#de51c9}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#68145C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#de51c9}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#68145C;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#de51c9}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#68145C}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.35rem;padding-bottom:.35rem;margin-right:1rem;font-size:1.2rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem 0;font-size:1.125rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#2b2b2b}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#B5229F}.navbar-light .navbar-nav .nav-link{color:#34495e}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:#B5229F}.navbar-light .navbar-toggler{color:#34495e;border-color:rgba(0,0,0,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%2334495e' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#34495e}.navbar-light .navbar-text a{color:#B5229F}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#B5229F}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#68145C;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#280823;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#68145C;border-color:#68145C}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#68145C}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#3d0c36}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(104,20,92,0.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:hover,a.badge-secondary:focus{color:#fff;background-color:#545b62}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#1e7e34}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#117a8b}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:hover,a.badge-warning:focus{color:#212529;background-color:#d39e00}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#bd2130}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{color:#212529;background-color:#dae0e5}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#1d2124}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert,.article-style aside{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#360a30;background-color:#e1d0de;border-color:#d5bdd1}.alert-primary hr{border-top-color:#cbadc6}.alert-primary .alert-link{color:#0b020a}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#68145C;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#68145C;border-color:#68145C}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#360a30;background-color:#d5bdd1}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#360a30;background-color:#cbadc6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#360a30;border-color:#360a30}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border:1px solid rgba(0,0,0,0.1);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,0.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="left"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50% / 100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#68145C !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#3d0c36 !important}.bg-secondary{background-color:#6c757d !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#545b62 !important}.bg-success{background-color:#28a745 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#1e7e34 !important}.bg-info{background-color:#17a2b8 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#117a8b !important}.bg-warning{background-color:#ffc107 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#d39e00 !important}.bg-danger{background-color:#dc3545 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#bd2130 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #dee2e6 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-right{border-right:1px solid #dee2e6 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-left{border-left:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#68145C !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#28a745 !important}.border-info{border-color:#17a2b8 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-lg{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714286%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#68145C !important}a.text-primary:hover,a.text-primary:focus{color:#280823 !important}.text-secondary{color:#6c757d !important}a.text-secondary:hover,a.text-secondary:focus{color:#494f54 !important}.text-success{color:#28a745 !important}a.text-success:hover,a.text-success:focus{color:#19692c !important}.text-info{color:#17a2b8 !important}a.text-info:hover,a.text-info:focus{color:#0f6674 !important}.text-warning{color:#ffc107 !important}a.text-warning:hover,a.text-warning:focus{color:#ba8b00 !important}.text-danger{color:#dc3545 !important}a.text-danger:hover,a.text-danger:focus{color:#a71d2a !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-body{color:#212529 !important}.text-muted{color:rgba(0,0,0,0.54) !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;overflow-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-family:"Lato",sans-serif;font-size:16.17px;color:rgba(0,0,0,0.8);line-height:1.65}@media screen and (min-width: 58em){html{font-size:21px}}body{font-family:inherit;font-size:1rem;line-height:inherit;color:inherit;background-color:#fff;margin-top:70px;padding-top:0;counter-reset:captions}@media (max-width: 991.98px){body{margin-top:50px}}.max-width-640{max-width:640px}.margin-auto,figure img{margin-left:auto;margin-right:auto}.center-text{text-align:center}p{margin-top:0;margin-bottom:1rem}ul,ol,dl{margin-top:0;margin-bottom:1rem}ul.task-list{list-style:none}ul.task-list li input[type="checkbox"]{margin-right:0.5rem}.navbar-light{font-family:"Lato",sans-serif;font-weight:400;line-height:1.25;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:"Lato",sans-serif;font-weight:400;margin-top:1rem;margin-bottom:.5rem;line-height:1.25;color:#313131;text-rendering:optimizeLegibility;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual}h1{font-size:2.25rem}h2{margin-top:1rem;font-size:1.5rem}h3{font-weight:700;margin-top:1.5rem;font-size:1.25rem}h4,h5,h6{font-weight:700;margin-top:1rem;font-size:1rem}a,h3.article-title a:hover{color:#68145C;text-decoration:none;transition:color 0.6s ease}a:hover,a:focus{color:#68145C}img,video{height:auto;max-width:100%;display:block}video{width:100%;height:auto;max-height:400px}.img-responsive{margin:0 auto}figcaption{display:block;margin-top:0.75em;margin-bottom:1.65rem;line-height:1.4;font-size:0.76rem;text-align:center}figcaption.numbered:before{font-weight:700;text-transform:uppercase;content:attr(data-pre) counter(captions) attr(data-post)}figcaption.numbered{counter-increment:captions}pre,code{font-family:"Roboto Mono",monospace;color:#3d0c36;background-color:#f8f8f8}pre{margin:0 0 1rem 0;background-color:#f8f8f8;border-color:#f8f8f8;font-size:0.7rem;border-radius:4px}pre code{white-space:pre;overflow-x:auto}hr{border:0;height:1px;background:#333;background-image:linear-gradient(to right, #ccc, #333, #ccc)}blockquote{padding:.5rem 1rem;margin:.8rem 0;color:#7a7a7a;border-left:.25rem solid #e5e5e5}blockquote p:last-child{margin-bottom:0}@media (min-width: 30em){blockquote{padding-right:5rem;padding-left:1.25rem}}.markup-quote{background-color:transparent;background-image:linear-gradient(to bottom, #e9e7f5, #e9e7f5)}.space-below{margin-bottom:50px}@media screen and (max-width: 768px){.space-below{margin-bottom:10px}}.universal-wrapper{margin:0 auto;padding-right:1rem;padding-left:1rem;padding-top:0.1rem;width:100%}@media only screen and (min-width: 1001px){.universal-wrapper{width:1000px}}small,.small{font-size:.75em}.responsive-wrap iframe{max-width:100%}.modal-content{background:#fff}.modal-title{margin:0}.modal-content pre{margin:0}.modal-header{border:0;color:rgba(0,0,0,0.8)}.modal-footer{border:0}#modal-error{color:red}.gallery{margin:0.5em -4px 1.5em -4px;font-size:0}a[data-fancybox]{text-decoration:none;cursor:zoom-in}.gallery a[data-fancybox] img{height:250px;width:auto;max-width:inherit;display:inherit;margin:0;padding:4px;box-shadow:none;vertical-align:inherit}.fancybox-caption{font-size:1rem;line-height:1.5rem;text-align:center}.post-nav{margin-top:1rem;font-size:0.8rem}.post-nav-item{hyphens:auto;word-wrap:break-word;padding:11px 0 12px;width:100%}.post-nav-item a{color:#2b2b2b;line-height:1.7;text-transform:none}.post-nav-item .meta-nav{color:#767676;font-weight:900;line-height:2;text-transform:uppercase}.dark .post-nav-item a{color:#ddd}footer{margin:4rem 0 0;padding:2rem 0;width:100%}footer p{font-size:0.75rem;text-align:center}site-footer,footer a.back-to-top i{color:rgba(0,0,0,0.54)}.dark site-footer,.dark footer a.back-to-top i,.dark .docs .body-footer{color:rgba(255,255,255,0.54)}.badge-light{border:none;color:rgba(0,0,0,0.68);background:rgba(0,0,0,0.05);font-weight:normal;border-radius:3px;padding:5px 10px;margin-right:8px;margin-bottom:8px}.article-tags>.badge-light:last-child{margin-right:0}.badge-light[href]:focus,.badge-light[href]:hover{background:rgba(0,0,0,0.1)}a.badge:focus,a.badge:hover{color:rgba(0,0,0,0.68)}.tag-cloud a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out}.tag-cloud a:active,.tag-cloud a:focus,.tag-cloud a:hover{color:#3d0c36;transform:scale(1.2)}.dark .tag-cloud a:active,.dark .tag-cloud a:focus,.dark .tag-cloud a:hover{color:#931c82}.btn{padding:.5rem;font-size:.8rem;line-height:.5;border-radius:.3rem}.btn-links .btn{padding:5px .5rem 5px .5rem;line-height:1}.btn.btn-sm,.btn-group-sm>.btn{padding:5px .4rem 5px .4rem;font-size:.6rem;border-radius:.2rem}.btn-toolbar .btn{font-size:0.9rem;padding:10px 14px 9px;border:none}.btn-toolbar .btn:first-child{border-radius:6px 0 0 6px}.btn-toolbar .btn:last-child{border-radius:0 6px 6px 0}.btn-toolbar .btn.btn-primary:hover,.btn-toolbar .btn.btn-primary:focus{background-color:#931c82 !important}.btn-toolbar .btn.btn-primary:active,.btn-toolbar .btn.btn-primary.active{background-color:#3d0c36 !important}.btn-primary.active:not(:disabled):not(.disabled):focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0.2rem #931c82}table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem;font-size:0.8rem}table>thead>tr>th,table>tbody>tr>th,table>tfoot>tr>th,table>thead>tr>td,table>tbody>tr>td,table>tfoot>tr>td{padding:8px;line-height:1.43;vertical-align:top;border-top:1px solid #ddd}table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}table>caption+thead>tr:first-child>th,table>colgroup+thead>tr:first-child>th,table>thead:first-child>tr:first-child>th,table>caption+thead>tr:first-child>td,table>colgroup+thead>tr:first-child>td,table>thead:first-child>tr:first-child>td{border-top:0}table>tbody+tbody{border-top:2px solid #ddd}table table{background-color:#fff}table>tbody>tr:nth-child(odd)>td,table>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}table>tbody>tr:hover>td,table>tbody>tr:hover>th{background-color:#e5e5e5}.article-style aside p,div.alert>div{position:relative;display:block;font-size:1rem;margin-left:2rem;margin-top:0;margin-bottom:0}div.alert div>*{margin-bottom:.5rem}div.alert div>:last-child{margin-bottom:0}.article-style aside p::before,div.alert>div:first-child::before{position:absolute;top:-0.5rem;left:-2rem;font-size:1.5rem;color:#209cee;font-family:'Font Awesome 5 Free';font-weight:900;content:'\f05a';width:1.5rem;text-align:center}div.alert-warning>div:first-child::before{font-family:'Font Awesome 5 Free';font-weight:900;color:#ff3860;content:'\f071'}.article-style aside a,div.alert a{color:currentColor;text-decoration:none;border-bottom:solid 1px currentColor}.article-style aside,.alert-note{color:#12537e;background-color:#f6fbfe;border-color:#209cee}.alert-warning{color:#cd0930;background-color:#fff5f7;border-color:#ff3860}.svg-icon{display:inline-flex;align-self:center}.svg-icon{height:0.9em;width:0.9em}.svg-icon.svg-baseline{bottom:0.1em;line-height:1;position:relative}.footer-license-icons{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;height:auto;width:auto;font-size:0;text-decoration:none}.footer-license-icons img{display:inline-flex;margin-right:8px;height:22px;vertical-align:text-bottom}.navbar{height:70px;background:#fff;box-shadow:0 0.125rem 0.25rem 0 rgba(0,0,0,0.11);font-size:16.17px;position:fixed;top:0;right:0;left:0;z-index:1030;padding:0 1rem}.navbar .nav-item{position:relative}@media (max-width: 991.98px){.navbar{height:50px}.navbar .navbar-nav-scroll{width:100%;overflow:hidden}.navbar .navbar-nav-scroll .navbar-nav{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}.navbar .navbar-nav{display:flex}.navbar .navbar-nav .nav-link{color:rgba(52,73,94,0.85)}.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link:hover,.navbar .navbar-nav .nav-link:focus{color:#34495e}.navbar .navbar-nav .nav-link.active{font-weight:bold !important;color:#B5229F !important}.navbar .dropdown-menu{font-size:16.17px}.navbar .dropdown-item.active,.navbar .dropdown-item-active{font-weight:bold;color:#B5229F !important}.dark .navbar{box-shadow:0 0.125rem 0.25rem 0 rgba(255,255,255,0.11)}.navbar-toggler{border:0 !important;position:relative;z-index:1030}.navbar-toggler:focus,.navbar-toggler:active{outline:none !important;box-shadow:none !important}@media (max-width: 991.98px){.i18n-dropdown .nav-link::after{content:none}}.i18n-dropdown .dropdown-menu,.theme-dropdown .dropdown-menu{position:absolute;right:0;left:auto}.navbar-brand{padding-top:5px;padding-bottom:5px;font-weight:bold;position:relative;z-index:1030}.navbar-brand img{width:auto;height:-moz-available;height:-webkit-fill-available;height:-webkit-stretch;height:stretch;max-height:60px;max-width:fit-content}#navbar-main .main-menu-item ul li .nav-link{color:#34495e}@media (max-width: 991.98px){.navbar-brand-mobile-wrapper{position:absolute;left:0;right:0}.navbar-brand{margin:0 auto}.navbar-brand img{max-height:40px}.navbar-toggler{border-color:transparent}#navbar-main .main-menu-item{text-align:left !important;padding-left:0}.navbar-collapse{z-index:1031 !important;position:absolute;left:0;top:50px;width:100%;background-color:#fff;text-align:center !important}#navbar-main .main-menu-item .nav-item{padding:10px 15px !important}#navbar-main .main-menu-item .nav-item .nav-link{padding:5px 15px !important}}ul.nav-icons{list-style-type:none;font-size:18px;padding:0.5rem 0 0.5rem 0;margin:0}ul.nav-icons li{display:inline;padding-right:1rem}ul.nav-icons li:last-of-type{padding-right:0}ul.nav-icons li.nav-item a.nav-link{padding:0}.dropdown-menu{background-color:#fff !important;color:#34495e !important;z-index:1032}.dropdown-item{background-color:#fff !important;color:#34495e !important}.card-simple{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.09);border-radius:3px;margin-top:20px;padding:15px 20px 15px 20px}.card-simple:first-of-type{margin-top:0}.card-simple p.read-more{margin:0}.dark .card-simple{background:#282a36;box-shadow:0 1px 4px rgba(0,0,0,0.04);border:1px solid #44475a}.card{margin-bottom:1.5rem;overflow:hidden;text-overflow:ellipsis;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);transition:all 0.2s ease-out}.card .card-image{display:block;position:relative;margin:3rem 3rem 0;min-height:6rem;max-width:80%;max-height:80%;text-align:center;vertical-align:middle}.card h4{font-size:0.9rem;font-weight:700;line-height:1.5;text-transform:uppercase}.card h4 a{color:#000;border-bottom:solid 1px transparent}.card h4 a:hover{color:#000;border-bottom:solid 1px #000;text-decoration:none}.card .card-text{padding:0.75rem 1rem 0.75rem}.card .card-text p{color:rgba(0,0,0,0.54);font-size:0.75rem}.dark .card-text p{color:#f8f8f2}.card p:last-child{margin-bottom:0}.card .card-image.hover-overlay:before{display:block;position:absolute;left:0;top:0;width:100%;height:100%;background:#fff;content:" ";opacity:0;transition:all 0.2s ease-out}.card .card-image.hover-overlay:after{display:block;position:absolute;left:0;top:50%;width:100%;transform:translate(0, -50%);opacity:0;transition:all 0.2s ease-out;font-family:'Font Awesome 5 Free';font-weight:900;content:'\f0c1';text-align:center;font-size:3rem;color:#666}.card:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2)}.card:hover .card-image.hover-overlay:before{opacity:0.8}.card:hover .card-image.hover-overlay:after{opacity:0.6}.search-results{transform:scale(0);-webkit-transform:scale(0);background-color:#fff;bottom:0;left:0;right:0;top:0;overflow:scroll;position:fixed;visibility:hidden;z-index:-99}.dark .search-results{background-color:#282a36}.searching{overflow:hidden}.searching .search-results{transform:scale(1);-webkit-transform:scale(1);visibility:visible;z-index:1031}.searching #search-box #search-query{width:100%}.search-results>.container{padding-top:70px}@media screen and (max-width: 1200px){.search-results>.container{padding-top:50px}}.search-header{position:-webkit-sticky;position:sticky;top:0;background-color:#fff;padding-top:2rem;padding-bottom:1rem}.dark .search-header{background-color:#282a36}.search-header h1{margin:0;line-height:1}.col-search-close{text-align:right}.search-header i{font-size:2rem;line-height:1}#search-box{position:relative;margin-bottom:0.5rem}#search-box::before{font-family:'Font Awesome 5 Free';font-weight:900;content:"\f002";font-size:1rem;opacity:0.25;line-height:1rem;position:absolute;left:0.7rem;top:0.6rem;overflow-x:hidden}#search-box #search-query{border:1px solid #dedede;border-radius:1rem;padding:1rem 1rem 1rem 2rem;width:250px;line-height:1rem;height:1rem;font-size:0.8rem}.search-hit em{font-style:normal;background-color:#FFE0B2;color:#E65100;border-bottom:1px solid #E65100}.search-hit-type{margin-bottom:0 !important;text-transform:capitalize}.search-hit-description{font-size:0.7rem}#search-hits button[disabled]{display:none}.form-control:focus{border-color:#68145C;box-shadow:0 0 0 0.2rem #931c82}.dark .ais-search-box--input{background-color:#282a36}.dark #search-query{background-color:#282a36}article{animation:intro 0.3s both;animation-delay:0.15s}.article-container{max-width:1200px;padding:0 20px 0 20px;margin:0 auto 0 auto}.page-subtitle{font-size:1.15rem;color:rgba(0,0,0,0.54);margin-bottom:1rem}.dark .page-subtitle{color:rgba(255,255,255,0.54)}.article-header{position:relative;clear:both}.article-banner{width:100%;height:auto}.featured-image-wrapper{position:relative;padding-left:0;padding-right:0}.featured-image{position:relative;width:100%;display:block;margin:0 auto}.article-header-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-size:.7em;background:#000;text-align:right;z-index:5;opacity:0.65;border-radius:5px 0 0 0}@media (min-width: 64em){.article-header-caption{padding:5px 10px}}.article-header-caption a{color:#fff;text-decoration:none}.article-title{font-size:1.75rem}.article-title a{color:#151515;transition:color 0.6s ease}.dark .text-muted{color:rgba(255,255,255,0.54) !important}.article-metadata{margin-bottom:15px;overflow:hidden;font-size:14px;letter-spacing:0.03em;color:rgba(0,0,0,0.54)}.dark .article-metadata{color:rgba(255,255,255,0.54)}.stream-meta.article-metadata{margin-bottom:5px}article .article-metadata{margin-bottom:20px}.article-metadata a{color:rgba(0,0,0,0.54)}.dark .article-metadata a{color:rgba(255,255,255,0.54)}.article-metadata a:hover{color:#68145C}.article-categories{white-space:nowrap}.middot-divider{padding-right:.45em;padding-left:.45em;font-size:15px}.middot-divider::after{content:'\00B7'}.article-style img,.article-style video{margin-left:auto;margin-right:auto;margin-top:2rem;margin-bottom:2rem;padding:0}.article-style td img,.article-style td video{margin-top:0;margin-bottom:0}.article-style figure{margin-top:2rem;margin-bottom:2rem}.article-style figure img{margin-top:0;margin-bottom:0}.pub-banner{max-width:100%;height:auto;margin-left:auto;margin-right:auto}.pub-row-heading{font-weight:bold}#container-publications{display:block;position:relative;overflow:hidden}.li-cite-author{font-size:1em;color:inherit}.li-cite-author a{color:inherit}.dark .li-cite-author a{color:#f8f8f2}.content-widget-hr{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid rgba(0,0,0,0.05)}.dark .content-widget-hr{border-top:1px solid rgba(255,255,255,0.05)}.article-tags{margin-top:1.2rem}.share-box{margin-top:0.7rem}ul.share{display:flex;align-items:center;justify-content:center;flex-direction:row;flex-wrap:wrap;list-style:none;margin:0;padding:0}ul.share li{display:inline-flex;margin-right:8px}ul.share li:last-of-type{margin-right:0}ul.share li i{display:block;width:30px;height:30px;line-height:30px;font-size:22px;text-align:center;transition:all 150ms ease-in-out}ul.share li a{text-decoration:none !important;color:rgba(0,0,0,0.84)}.dark ul.share li a{color:rgba(255,255,255,0.84)}ul.share li:hover i{transform:scale(1.2)}.author-card .avatar{width:60px;height:60px}.author-card .card-title{margin-top:0;margin-bottom:15px;font-weight:600;color:rgba(0,0,0,0.84)}.author-card .card-title a{color:rgba(0,0,0,0.84)}.dark .author-card .card-title,.dark .author-card .card-title a{color:rgba(255,255,255,0.84)}.author-card p{margin-bottom:5px}.author-card .card-subtitle{font-weight:300;font-size:0.8rem;color:rgba(0,0,0,0.54);margin-bottom:7px}.dark .author-card .card-subtitle{color:rgba(255,255,255,0.54)}.author-card .card-text{color:rgba(0,0,0,0.76);font-size:0.8rem;margin-bottom:4px}.dark .author-card .card-text{color:rgba(255,255,255,0.76)}#comments{padding-top:1rem}.article-widget{padding-top:1.2rem}.article-widget h3{margin-top:0}.view-list-item{margin-bottom:1rem}.pub-icon{color:rgba(0,0,0,0.54);font-size:0.81em;padding-right:6px}.view-list-item .article-metadata{margin-bottom:0}.pub-list-item .pub-abstract{font-size:1rem}.pub-list-item .btn-links{padding-top:10px}.media.stream-item{margin-bottom:2rem}.media.stream-item .article-title,.card-simple .article-title{font-size:1.2rem}.media.stream-item .article-style,.card-simple .article-style{margin-top:2px;font-size:0.8rem}.media.stream-item .stream-meta{margin-top:12px}.media.stream-item img{max-width:300px;height:auto;object-fit:cover}@media screen and (max-width: 768px){.media.stream-item img{max-width:80px}}@keyframes intro{0%{opacity:0}100%{opacity:1}}.home-section{background-color:#eae8f0;padding:110px 0 110px 0;animation:intro 0.3s both;animation-delay:0.15s}.home-section.dark,.home-section.dark h1,.home-section.dark h2,.home-section.dark h3,.home-section.dark a:not(.btn){color:#f8f8f2}.home-section.dark a:not(.btn):not(.hero-cta-alt){text-decoration:underline}.home-section.dark .alert a,.home-section.dark .article-style aside a,.article-style .home-section.dark aside a{color:inherit !important;text-decoration:inherit !important}.home-section.bg-image{background-position:center;background-repeat:no-repeat;background-size:cover}.parallax{height:100%;background-attachment:fixed}.home-section:first-of-type{padding-top:50px}.home-section:nth-of-type(even){background-color:#fff}.dark .home-section{background-color:#272935}.dark .home-section:nth-of-type(even){background-color:#23252f}@media screen and (max-width: 768px){.home-section{padding:60px 0 60px 0}.home-section:first-of-type{padding-top:40px}}.section-heading h1{margin:0 0 10px 0}.section-heading p{font-weight:400;font-size:1.1rem;color:#b2b2b2}.see-all{margin-top:2rem;text-transform:uppercase}.dark .alert pre,.dark .article-style aside pre,.article-style .dark aside pre,.dark .alert code,.dark .article-style aside code,.article-style .dark aside code{color:initial;background-color:initial}.wg-hero{padding:3em 0;clear:both;background-size:cover;background-repeat:no-repeat;background-position:center;animation:intro 0.3s both;animation-delay:0s;animation-delay:0.25s}.hero-title{font-size:2.7rem;margin-top:0;line-height:1}.hero-lead{max-width:768px;font-size:1.35rem}.wg-hero.dark .hero-title,.wg-hero.dark .hero-lead,.wg-hero.dark .hero-cta-alt,.wg-hero.dark .hero-note>*{color:#fff}.wg-hero.dark a:not(.wg-hero .btn){color:#fff}.wg-hero .hero-lead a{text-decoration:underline}.wg-hero .cta-btns{margin-bottom:16px}.wg-hero .btn{padding:.6em 2.1em}.wg-hero.dark .btn{color:#3d0c36}a.hero-cta-alt{display:inline-block;position:relative;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out;font-size:1.1rem}a.hero-cta-alt:active,a.hero-cta-alt:focus,a.hero-cta-alt:hover{transform:scale(1.1)}.wg-hero .btn-lg,.wg-hero .btn-group-lg>.btn{font-size:1.1rem}.wg-hero .hero-note{font-size:0.8rem}.hero-media{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.home-section.wg-slider{padding:0;animation:none;animation-delay:unset}.carousel-inner .wg-hero{animation:none;clear:none}.featurette{font-size:0.8rem;line-height:1.5;color:#555;text-align:center}.featurette h3{margin-top:0;margin-bottom:5px;font-weight:400;color:#333}.dark .featurette,.dark .featurette h3{color:#fff}.featurette-icon{display:block;width:100%;color:#68145C;font-size:3rem;text-align:center}#profile{text-align:center;padding:30px 10px;position:relative}.avatar{width:270px;height:270px;margin:0 auto;object-fit:cover}@media (max-width: 767.98px){.wg-about .avatar{width:200px;height:200px}}.avatar-circle{border-radius:50%}.avatar-square{border-radius:3px}.portrait-title h2{font-size:1.75em;font-weight:300;color:#000000;margin:20px 0 10px 0}.portrait-title h3{font-size:1rem;font-weight:300;color:rgba(0,0,0,0.54);margin:0px 0 10px 0}ul.network-icon{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;padding:0;margin:0}#profile .network-icon{margin-top:30px}.network-icon li{margin-right:10px}.network-icon li:last-of-type{margin-right:0}.network-icon li:hover{transform:scale(1.2)}.big-icon{font-size:2rem}ul.ul-interests li{font-size:0.9rem}ul.ul-edu{list-style:none}ul.ul-edu li{position:relative;padding:0px 15px 4px 3px}ul.ul-edu li .description p{margin:0}ul.ul-edu li .description p.course{font-size:0.9rem}ul.ul-edu li .description p.institution{font-size:0.75rem;color:rgba(0,0,0,0.6)}.exp-title{text-transform:none !important}.exp-company{font-weight:normal !important;text-transform:none !important}.exp-meta{font-size:0.8rem}.experience .card-text,.experience .card-text p{color:#000 !important;font-size:0.75rem !important}.dark .experience .text-muted{color:rgba(255,255,255,0.8) !important}.dark .experience .card-text,.dark .experience .card-text p{color:#f8f8f2 !important}.card .card-text ul{margin-top:-1rem;margin-bottom:0rem}.experience .m-2 .border,.experience .col.border-right{border-color:#68145C !important}.experience .m-2 .border.exp-fill{background-color:#68145C !important}.talk-metadata{color:#4b4f56;font-size:0.8rem}.project-widget-simple li{margin-bottom:1rem}.project-widget-simple li:last-of-type{margin-bottom:0}.project-widget-simple .project-title{margin-bottom:6px}.project-widget-simple .project-summary{font-size:0.9rem;margin-bottom:0.4rem}.projects-container{display:block;position:relative;overflow:hidden}.project-toolbar{margin-bottom:2rem}.project-card{position:relative;width:calc(33.3% - 2*20px)}@media screen and (max-width: 1199px){.project-card{width:calc(50% - 20px)}}@media screen and (max-width: 768px){.project-card{width:100%}}.project-item{margin-bottom:1.5rem}.project-card.project-item{margin:0 0 20px 0}.project-card .card{margin:0}.project-showcase .project-item{margin-bottom:3rem}.project-item:last-of-type{margin-bottom:0}.isotope-item{z-index:2}.isotope-item:hover{z-index:3}.card.course{margin-bottom:1rem}.card.course:last-of-type{margin-bottom:0}.course .card-subtitle a{border-bottom:solid 1px transparent}.course .card-subtitle a:hover{border-bottom:solid 1px;text-decoration:none}.people-widget{font-size:0.8rem;text-align:center}.people-widget .portrait-title h2{font-size:1rem}.people-widget .portrait-title h3{font-size:0.7rem}.people-widget .avatar{width:80%;max-width:150px;height:auto}@media (min-width: 576px){.people-widget .col-sm-auto{width:30%}}@media (min-width: 992px){.people-widget .col-sm-auto{width:20%}}.contact-widget .fa-ul{margin-left:3.14285714rem}.contact-widget .fa-li{position:absolute;left:-3.14285714rem;width:2rem;top:0.14285714em;text-align:center}.contact-widget li{padding-top:0.8rem;margin-bottom:0.3rem}.contact-widget li:last-of-type{margin-bottom:0}#map{height:350px;width:100%}.docs-article-container{max-width:760px}.docs .body-footer{border-top:1px solid #e8e8e8;margin-top:30px;padding-top:10px;font-size:14px;color:#707070}.docs-content{order:1;position:relative}.docs-content>h2[id],.docs-content>h3[id],.docs-content>h4[id]{pointer-events:none}.docs-content>ol li,.docs-content>ul li{margin-bottom:.25rem}.docs-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,0.05)}.docs-search .form-control:focus{border-color:#68145C;box-shadow:0 0 0 3px #931c82}.docs-sidebar{order:0;border-bottom:1px solid rgba(0,0,0,0.1)}@media (min-width: 768px){.docs-sidebar{border-right:1px solid rgba(0,0,0,0.1)}@supports (position: -webkit-sticky) or (position: sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:50px;z-index:10;height:calc(100vh - 50px)}}}@media (min-width: 1200px){.docs-sidebar{border-right:1px solid rgba(0,0,0,0.1)}@supports (position: -webkit-sticky) or (position: sticky){.docs-sidebar{position:-webkit-sticky;position:sticky;top:70px;z-index:10;height:calc(100vh - 70px)}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:0.8rem;color:rgba(0,0,0,0.65)}.docs-sidebar .nav>li>a:hover{color:rgba(0,0,0,0.85);text-decoration:none;background-color:transparent}.docs-sidebar .docs-toc-item.active a,.docs-sidebar .nav>.active:hover>a,.docs-sidebar .nav>.active>a{font-weight:bold;color:#68145C;background-color:transparent}.docs-toggle{line-height:1;font-size:1.2rem;color:#68145C;background-color:transparent}.docs-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width: 768px){@supports (position: -webkit-sticky) or (position: sticky){.docs-links{max-height:calc(100vh - 5rem - 70px);overflow-y:auto}}}@media (min-width: 768px){.docs-links{display:block !important}}.docs-toc{order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports (position: -webkit-sticky) or (position: sticky){.docs-toc{position:-webkit-sticky;position:sticky;top:70px;height:calc(100vh - 70px);overflow-y:auto}}.docs-toc-link{display:block;padding:.25rem 1.5rem;font-weight:bold;color:rgba(0,0,0,0.65)}.docs-toc-link:hover{color:rgba(0,0,0,0.85);text-decoration:none}.docs-toc-item.active{margin-bottom:1rem}.docs-toc-item.active:not(:first-child){margin-top:1rem}.docs-toc-item.active>.docs-toc-link{color:rgba(0,0,0,0.85)}.docs-toc-item.active>.docs-toc-link:hover{background-color:transparent}.docs-sidenav{display:block}.docs-toc-title{color:#b5b5b5;font-size:.875rem;font-weight:600;padding-left:calc(1.5rem + 1px)}#TableOfContents{padding-left:0;border-left:1px solid #eee}#TableOfContents ul,ul.toc-top{padding-left:0}#TableOfContents ul ul{padding-left:0.8rem}#TableOfContents li{display:block}#TableOfContents li a,.toc-top li a{display:block;padding:.125rem 1.5rem;color:#99979c;font-size:0.7rem}#TableOfContents li a:hover,.toc-top li a:hover{color:#68145C;text-decoration:none}#TableOfContents li a.active{color:#68145C;font-weight:700}.anchorjs-link{font-weight:400;color:#3d0c36;transition:color .16s linear}.anchorjs-link:hover{color:#68145C;text-decoration:none}body.dark,.dark .docs-toc-link,.dark .docs-sidebar .nav>li:not(.active)>a,.dark .modal button.close,.dark input,.dark .form-control,.dark .form-control:focus{color:#f8f8f2;background:#282a36}.dark .form-control{background-color:#44475a}.dark .form-control:focus{background-color:#44475a;border-color:#68145C;box-shadow:0 0 0 0.2rem #3d0c36}.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#98a6ad}.dark pre,.dark code{color:#8be9fd;background-color:#44475a}.dark pre{background-color:#44475a;border-color:#44475a}.dark .markup-quote{background-image:linear-gradient(to bottom, rgba(233,231,245,0.2), rgba(233,231,245,0.2))}.dark #MathJax_Zoom{background-color:#44475a !important}.dark table table{background-color:#282a36}.dark table>tbody>tr:nth-child(odd)>td,.dark table>tbody>tr:nth-child(odd)>th{background-color:#323440}.dark table>tbody>tr:hover>td,.dark table>tbody>tr:hover>th{background-color:#3c3e4a}.dark .article-title a{color:#fff}.dark .portrait-title h2{color:#fff}.dark .portrait-title h3{color:rgba(255,255,255,0.54)}.dark ul.ul-edu li .description p.institution{color:rgba(255,255,255,0.6)}.dark .pub-icon{color:rgba(255,255,255,0.54)}.dark .talk-metadata{color:rgba(255,255,255,0.54)}.dark .pagination li>a,.pagination li>span{background-color:#282a36;border:1px solid #ddd}.dark .card{background:#343a40}.dark .card h4 a{color:#68145C;border-bottom:solid 1px transparent}.dark .card .card-image.hover-overlay::before{background:#666}.dark .card .card-image.hover-overlay::after{color:#fff}.dark select{background:#282a36;color:#f8f8f2}.dark .badge-light{color:rgba(255,255,255,0.68);background:rgba(255,255,255,0.2)}.dark .badge-light[href]:focus,.dark .badge-light[href]:hover{background:rgba(255,255,255,0.3)}.dark a.badge:focus,.dark a.badge:hover{color:rgba(255,255,255,0.68)}.dark .btn-primary,.dark .btn.btn-primary.active{color:initial}div.mermaid{width:100%;text-align:center;margin-bottom:1rem}html[dir="rtl"] body{text-align:right}.gradient-orange{background-image:linear-gradient(-45deg, #e87308, #F88D2B)}.gradient-orange-darken{background-image:linear-gradient(-45deg, #f78217 0, #f8953a 70%)}.gradient-orange-darken-hover{background-image:linear-gradient(-45deg, #f78217 -30%, #f8953a 40%)}.gradient-purple{background-image:linear-gradient(-45deg, #3d0c36, #68145C)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-navy{background-image:linear-gradient(-45deg, #19132e, #2D2252)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-white-darken,.wg-page-header .features .feature .feature-inner,.mosaic-btn-light{background-image:linear-gradient(-45deg, #f5f5f5 0, #fff 70%)}.gradient-orange-purple,.mosaic-btn-primary{background-image:linear-gradient(-45deg, #68145C, #F88D2B)}.gradient-orange-purple-dark,ul.menu-overview>li span.inner .link-wrap a:hover{background-image:linear-gradient(-45deg, #68145C, #F88D2B 150%)}.gradient-purple-navy{background-image:linear-gradient(-45deg, #2D2252, #68145C)}.gradient-purple-navy-hover{background-image:linear-gradient(-45deg, #251c44 -30%, #751667 40%)}.gradient-orange-purple-navy,.gradient-footer,.footer-wrap,.gradient-header,.wg-page-header::before,.wg-hero{background-image:linear-gradient(-45deg, #2D2252 10%, #68145C 50%, #F88D2B 100%)}.gradient-header,.wg-page-header::before,.wg-hero{background-image:linear-gradient(135deg, #0F0433 20%, #68145C 50%, #F88D2B 100%);background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.gradient-footer,.footer-wrap{background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.mosaic-card,.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner,.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner{padding:0 1.3rem;border-radius:1rem}.mosaic-card h2.mosaic-card-title,.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title,.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title{font-size:1.3rem;padding-top:1.1rem;padding-bottom:0.6rem;position:relative;text-align:left}.mosaic-card h2.mosaic-card-title::after,.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after,.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after{left:0;bottom:0;right:0;content:"";height:3px;position:absolute;border-radius:1rem}.mosaic-card h3.mosaic-card-subtitle,.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle,.mosaic-card-light h3.mosaic-card-subtitle,.wg-text-card .card.with-background h3.mosaic-card-subtitle,.wg-features-widget .feature .feature-inner h3.mosaic-card-subtitle{font-size:1rem}.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner{background-color:#fff;box-shadow:0.4rem 0.5rem 0.5rem rgba(45,44,47,0.1)}.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after{background-image:linear-gradient(-45deg, #f1edf4, #fff)}.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner{background-color:#ede9f0;background-image:linear-gradient(-45deg, #e5e0ea, #fefdff);box-shadow:0.2rem 0.3em 0.2rem rgba(24,21,30,0.17),inset 0 0 1px #aaa}.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after{background-image:linear-gradient(90deg, #F88D2B, #2D2252)}.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle{text-shadow:1px 1px 0 rgba(255,255,255,0.8)}.card{border:0;border-radius:1rem;background-color:#ede9f0;background-image:linear-gradient(-45deg, #efedf4, #fdfdff 60%);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}.card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}section:nth-of-type(2n + 1) .card{background-image:linear-gradient(-45deg, #efedf4, #fff);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}section:nth-of-type(2n + 1) .card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}.alert,.article-style aside,div.alert>div{font-size:0.75rem;border-radius:0.8rem}div.alert.alert-extended{color:#120410;background-color:#fae7f8;border-color:#68145C;position:relative}div.alert.alert-extended .extended-icon{position:absolute;display:block;content:"";background-position:center center;background-size:145%;width:2.5rem;height:2.5rem;left:0.4rem;top:47%;margin-top:-1.15rem}div.alert.alert-extended>div:first-child::before{content:none;display:none}div.alert.alert-learning_objectives{color:#406210;background-color:#f7fcef;border-color:#7ABA1E}div.alert.alert-learning_objectives>div:first-child::before{content:'\f19d';color:#7ABA1E;font-size:1.3rem;top:-0.4rem;left:-2.3rem}div.alert.alert-learning_objectives h3{font-size:1rem;margin:0.2rem 0 0.3rem;color:#38550e}div.alert.alert-learning_objectives ul li{list-style-type:none;position:relative;margin-bottom:0.2rem}div.alert.alert-learning_objectives ul li::before{font-family:'Font Awesome 5 Free';font-weight:900;font-size:0.7rem;line-height:0;content:'\f00c';position:absolute;left:-1.1rem;top:0.7rem}div.alert.alert-tip{color:#406210;background-color:#f7fcef;border-color:#7ABA1E}div.alert.alert-tip>div:first-child::before{content:'\f06a';color:#7ABA1E}div.alert.alert-note{color:#00567c;background-color:#f6fcff;border-color:#009DE2}div.alert.alert-note>div:first-child::before{color:#009DE2}div.alert.alert-warning{color:#9e4e05;background-color:#feead8;border-color:#F88D2B}div.alert.alert-warning>div:first-child::before{color:#F88D2B;left:-2.4rem}.mosaic-btn{display:inline-block;text-decoration:none !important;border:2px solid #fff;border-radius:30px;padding:10px 25px;font-size:medium;font-weight:bold;margin:1rem 1rem 1rem 0;transition:all 0.16s ease}.mosaic-btn:hover,.mosaic-btn:focus{background-color:#fff;color:#68145C}.mosaic-btn i{transition:all 0.16s ease;margin-right:0.3rem}.mosaic-btn-light{color:#68145C !important;border-color:#fff;background-color:#fff}.mosaic-btn-light:hover,.mosaic-btn-light:focus{background-color:transparent;color:#fff !important;border-color:#fff;background-image:none}.mosaic-btn-primary{color:#fff;border-width:0;background-image:linear-gradient(-45deg, #68145C 0%, #BB86B3 100%)}.mosaic-btn-primary:hover,.mosaic-btn-primary:focus{color:#fff;background-image:linear-gradient(-45deg, #872E51 0%, #F88D2B 210%)}.mosaic-btn-secondary{color:#fff;border-width:0;background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.mosaic-btn-secondary:hover,.mosaic-btn-secondary:focus{color:#fff;background-image:linear-gradient(-45deg, #872E51 0%, #F88D2B 210%)}.docs{max-width:1700px}.docs .article h1{font-size:1.4rem}.docs .article h2{font-size:1.1rem}.docs .article h3{font-size:1rem;font-weight:normal}.docs-article-container{max-width:none}.docs-article-container table{display:table}.docs-content{padding-bottom:0 !important}.docs .article{font-size:0.8rem}.docs .article h1{font-size:1.45rem}.docs .article h2{font-size:1.3rem}.docs-search{margin-left:0;padding-left:0;margin-bottom:0}.docs-search .form-control{font-size:0.84rem}.docs-search .form-control:focus{box-shadow:0 0 0 1px #931c82}.docs-nav{padding-left:15px}a.docs-toc-link{border-top:1px solid #e7e4ea;background-color:#f9f7fb;border-bottom:1px solid #e7e4ea}a.docs-toc-link:hover{color:#68145C}.docs-toc-item{margin-bottom:0.5rem}.nav.docs-sidenav li{margin:0 0 0 1.1rem;padding:0.1rem 1rem 0.1rem 1.1rem;position:relative;border-top-left-radius:0.3rem;border-bottom-left-radius:0.3rem}.nav.docs-sidenav li.active{background-color:#931c82}.nav.docs-sidenav li.active::before,.nav.docs-sidenav li.active a:hover,.nav.docs-sidenav li.active a{color:#fff;font-weight:normal}.nav.docs-sidenav li:hover:not(.active){background-color:#f9f7fb}.nav.docs-sidenav li:hover:not(.active) a{font-weight:normal;color:#68145C}.nav.docs-sidenav li::before{content:"▶︎";position:absolute;top:0.44rem;left:0.4rem;font-size:0.45rem;color:#931c82}.nav.docs-sidenav li>a{padding:0;font-weight:normal !important}.docs-toc{overflow-y:visible}#TableOfContents li a,.toc-top li a{color:#79777d}@media screen and (max-width: 576px){.docs-sidebar{max-height:calc(100vh - 50px);overflow-y:scroll;position:fixed;z-index:1;background-color:#fff}.docs-content{margin-top:70px}}#search div.logo{width:100%;height:80px;background-position:-21px -24px;background-repeat:no-repeat;background-size:256px}#search .col-search-close{position:relative}#search .col-search-close a.js-search{position:absolute;right:0;bottom:0}@media screen and (max-width: 576px){#search .container{padding-top:0}#search div.logo{background-size:50%;background-position:-13px -14px;height:47px}}.gradient-orange{background-image:linear-gradient(-45deg, #e87308, #F88D2B)}.gradient-orange-darken{background-image:linear-gradient(-45deg, #f78217 0, #f8953a 70%)}.gradient-orange-darken-hover{background-image:linear-gradient(-45deg, #f78217 -30%, #f8953a 40%)}.gradient-purple{background-image:linear-gradient(-45deg, #3d0c36, #68145C)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-navy{background-image:linear-gradient(-45deg, #19132e, #2D2252)}.gradient-purple-darken{background-image:linear-gradient(-45deg, #57114d 0, #751667 70%)}.gradient-purple-darken-hover,ul.menu-overview>li span.inner .link-wrap a{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%)}.gradient-white-darken,.wg-page-header .features .feature .feature-inner,.mosaic-btn-light{background-image:linear-gradient(-45deg, #f5f5f5 0, #fff 70%)}.gradient-orange-purple,.mosaic-btn-primary{background-image:linear-gradient(-45deg, #68145C, #F88D2B)}.gradient-orange-purple-dark,ul.menu-overview>li span.inner .link-wrap a:hover{background-image:linear-gradient(-45deg, #68145C, #F88D2B 150%)}.gradient-purple-navy{background-image:linear-gradient(-45deg, #2D2252, #68145C)}.gradient-purple-navy-hover{background-image:linear-gradient(-45deg, #251c44 -30%, #751667 40%)}.gradient-orange-purple-navy,.gradient-header,.wg-page-header::before,.wg-hero,.gradient-footer,.footer-wrap{background-image:linear-gradient(-45deg, #2D2252 10%, #68145C 50%, #F88D2B 100%)}.gradient-header,.wg-page-header::before,.wg-hero{background-image:linear-gradient(135deg, #0F0433 20%, #68145C 50%, #F88D2B 100%);background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.gradient-footer,.footer-wrap{background-image:linear-gradient(135deg, #0F0433 20%, #2D2252 40%, #68145C 50%, #F88D2B 100%)}.mosaic-card,.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner,.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner{padding:0 1.3rem;border-radius:1rem}.mosaic-card h2.mosaic-card-title,.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title,.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title{font-size:1.3rem;padding-top:1.1rem;padding-bottom:0.6rem;position:relative;text-align:left}.mosaic-card h2.mosaic-card-title::after,.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after,.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after{left:0;bottom:0;right:0;content:"";height:3px;position:absolute;border-radius:1rem}.mosaic-card h3.mosaic-card-subtitle,.mosaic-card-light h3.mosaic-card-subtitle,.wg-text-card .card.with-background h3.mosaic-card-subtitle,.wg-features-widget .feature .feature-inner h3.mosaic-card-subtitle,.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle{font-size:1rem}.mosaic-card-light,.wg-text-card .card.with-background,.wg-features-widget .feature .feature-inner{background-color:#fff;box-shadow:0.4rem 0.5rem 0.5rem rgba(45,44,47,0.1)}.mosaic-card-light h2.mosaic-card-title,.wg-text-card .card.with-background h2.mosaic-card-title,.wg-features-widget .feature .feature-inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-light h2.mosaic-card-title::after,.wg-text-card .card.with-background h2.mosaic-card-title::after,.wg-features-widget .feature .feature-inner h2.mosaic-card-title::after{background-image:linear-gradient(-45deg, #f1edf4, #fff)}.mosaic-card-dark,.wg-portfolio .card,section.wg-features-widget:nth-of-type(2n) .feature-inner,ul.menu-overview>li span.inner{background-color:#ede9f0;background-image:linear-gradient(-45deg, #e5e0ea, #fefdff);box-shadow:0.2rem 0.3em 0.2rem rgba(24,21,30,0.17),inset 0 0 1px #aaa}.mosaic-card-dark h2.mosaic-card-title,.wg-portfolio .card h2.mosaic-card-title,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title,ul.menu-overview>li span.inner h2.mosaic-card-title{color:#2D2252}.mosaic-card-dark h2.mosaic-card-title::after,.wg-portfolio .card h2.mosaic-card-title::after,section.wg-features-widget:nth-of-type(2n) .feature-inner h2.mosaic-card-title::after,ul.menu-overview>li span.inner h2.mosaic-card-title::after{background-image:linear-gradient(90deg, #F88D2B, #2D2252)}.mosaic-card-dark h3.mosaic-card-subtitle,.wg-portfolio .card h3.mosaic-card-subtitle,section.wg-features-widget:nth-of-type(2n) .feature-inner h3.mosaic-card-subtitle,ul.menu-overview>li span.inner h3.mosaic-card-subtitle{text-shadow:1px 1px 0 rgba(255,255,255,0.8)}.card{border:0;border-radius:1rem;background-color:#ede9f0;background-image:linear-gradient(-45deg, #efedf4, #fdfdff 60%);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}.card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #a59fb0}section:nth-of-type(2n + 1) .card{background-image:linear-gradient(-45deg, #efedf4, #fff);box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}section:nth-of-type(2n + 1) .card:hover{box-shadow:0.1rem 0.2em 0.3rem rgba(24,21,30,0.12),inset 0 0 1px #70697d}.footer-wrap{color:#fff;padding:0.3rem 0 0}.footer-wrap a.back-to-top i,.footer-wrap a{color:#fff}.footer-wrap footer.site-footer{margin:0;font-size:0.7rem}.footer-wrap footer.site-footer b{position:relative;display:inline-block;width:100%;padding-bottom:0.1rem;margin-bottom:0.4rem}.footer-wrap footer.site-footer b::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#fff}.footer-wrap footer.site-footer ul{margin:0;padding:0}.footer-wrap footer.site-footer ul li{padding:0;margin:0;list-style-type:none}.footer-wrap footer.site-footer ul li a{font-weight:normal}.footer-wrap footer.site-footer ul li .eclipse-logo{height:2rem;padding:0.2rem 0}.footer-wrap footer.site-footer .powered-by{font-size:0.6rem;color:rgba(255,255,255,0.7)}.footer-wrap footer.site-footer .powered-by a{color:rgba(255,255,255,0.7)}.docs footer.site-footer{margin-left:-1.5rem;margin-top:1rem;padding:2rem 3rem 1.6rem;font-size:0.7rem;background:#f2f2f7;width:calc(100% + 3rem)}.docs footer.site-footer b{position:relative;display:inline-block;width:100%;padding-bottom:0.1rem;margin-bottom:0.4rem}.docs footer.site-footer b::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#d9d9d9}.docs footer.site-footer ul{margin:0;padding:0}.docs footer.site-footer ul li{padding:0;margin:0;list-style-type:none}.docs footer.site-footer ul li a{font-weight:normal;color:#2D2252}.docs footer.site-footer ul li .eclipse-logo{height:2rem;padding:0.2rem 0}.docs footer.site-footer .powered-by{font-size:0.6rem;color:rgba(0,0,0,0.5)}.docs footer.site-footer .powered-by a{color:rgba(0,0,0,0.5)}.simulator-coupling{padding-bottom:1rem;position:relative;color:#fff;text-align:center}.simulator-coupling h2{color:#fff;font-size:1rem;font-weight:bold;text-align:left}.simulator-coupling .federates{z-index:10}.simulator-coupling .federates .domain{margin-right:1rem}.simulator-coupling .federates .domain:last-of-type{margin-right:0}.simulator-coupling .federates .domain.applications .domain-inner{background-color:#68145C;background-image:linear-gradient(135deg, #68145C 0%, #460d3e 100%)}.simulator-coupling .federates .domain.applications .simulators .simulator-wrap:hover .simulator{background-color:#931c82;color:#fff}.simulator-coupling .federates .domain.applications .arrow{background-color:#4e0f45}.simulator-coupling .federates .domain.communication .domain-inner{background-color:#009DE2;background-image:linear-gradient(135deg, #009DE2 0%, #0081b9 100%)}.simulator-coupling .federates .domain.communication .domain-inner .simulators .simulator-wrap:hover .simulator{background-color:#00567c;color:#fff}.simulator-coupling .federates .domain.communication .arrow{background-color:#0088c3}.simulator-coupling .federates .domain.traffic-vehicles .domain-inner{background-color:#7ABA1E;background-image:linear-gradient(135deg, #7ABA1E 0%, #639718 100%)}.simulator-coupling .federates .domain.traffic-vehicles .simulators .simulator-wrap:hover .simulator{background-color:#406210;color:#fff}.simulator-coupling .federates .domain.traffic-vehicles .arrow{background-color:#69a01a}.simulator-coupling .federates .domain.evaluation-tools .domain-inner{background-color:#F88D2B;background-image:linear-gradient(135deg, #F88D2B 0%, #f27808 100%)}.simulator-coupling .federates .domain.evaluation-tools .simulators .simulator-wrap:hover .simulator{background-color:#b75b06;color:#fff}.simulator-coupling .federates .domain.evaluation-tools .arrow{background-color:#f77d0d}.simulator-coupling .federates .domain.aso .domain-inner{background-color:#ccc;background-image:linear-gradient(135deg, #eee 0%, #ccc 100%);border:2px dotted rgba(0,0,0,0.2);color:#555;font-size:1.6rem}.simulator-coupling .federates .domain.aso .arrow{background-color:#cecece}.simulator-coupling .federates .domain .domain-inner{border-radius:1rem;padding-bottom:0.3rem;height:100%}.simulator-coupling .federates .domain .domain-inner h2{font-size:0.9rem;margin-bottom:0}.simulator-coupling .federates .domain .domain-inner .simulators .slim-gutters{margin-right:0}.simulator-coupling .federates .domain .domain-inner .simulators .slim-gutters .simulator-wrap.col-4,.simulator-coupling .federates .domain .domain-inner .simulators .slim-gutters .simulator-wrap.col-6{padding-right:0 !important}.simulator-coupling .federates .domain .domain-inner .simulators .simulator-wrap{margin-bottom:0.5rem;position:relative}.simulator-coupling .federates .domain .domain-inner .simulators .simulator-wrap:hover .simulator,.simulator-coupling .federates .domain .domain-inner .simulators .simulator-wrap:hover .desc-wrap{display:block}.simulator-coupling .federates .domain .domain-inner .simulators .simulator-wrap .simulator{height:100%;border-radius:0.4rem;background-color:#fff;color:#2D2252;font-size:0.7rem;padding:0.3rem 0.2rem;cursor:zoom-in}.simulator-coupling .federates .domain .arrow{z-index:10;position:absolute;bottom:-3.8rem;left:50%;margin-left:-1.5rem;width:3rem;height:4rem;clip-path:polygon(50% 100%, 0% 60%, 20% 60%, 20% 0%, 80% 0%, 80% 60%, 100% 60%)}.simulator-coupling .eclipse-mosaic{margin-top:1.2rem;background-color:#2D2252;background-image:linear-gradient(135deg, #2D2252 0%, #271e47 100%);padding-top:1.2rem;border-radius:1rem}.simulator-coupling .eclipse-mosaic .inner{padding:1rem}.simulator-coupling .eclipse-mosaic .inner .eclipse-mosaic-title{position:relative;margin-top:0.6rem;padding:0 0 1.1rem}.simulator-coupling .eclipse-mosaic .inner .eclipse-mosaic-title h2{cursor:zoom-in}.simulator-coupling .eclipse-mosaic .inner .eclipse-mosaic-title:hover h2{text-decoration:underline}.simulator-coupling .eclipse-mosaic .inner .eclipse-mosaic-title:hover .desc-wrap{display:block}.simulator-coupling .eclipse-mosaic .inner .core .management-wrap:hover .management{background-color:rgba(255,255,255,0.3);background-image:none;color:#fff}.simulator-coupling .eclipse-mosaic .inner .core .management-wrap:hover .desc-wrap{display:block}.simulator-coupling .eclipse-mosaic .inner .core .management-wrap .management{background-color:#fff;background-image:linear-gradient(135deg, #fff 0%, #f5f5f5 100%);color:#2D2252;padding:0.3rem;border-radius:0.8rem;cursor:zoom-in}.simulator-coupling .desc-wrap{display:none;position:absolute;top:45px;left:50%;margin-left:-230px;background-color:#fff;background-image:linear-gradient(135deg, #fff 15%, #eae8f0 100%);border-radius:1rem;padding:1rem;z-index:100;color:#2D2252;box-shadow:0 5px 15px 8px rgba(0,0,0,0.3);min-width:460px;text-align:left}.simulator-coupling .desc-wrap.position-right{top:-32px;left:100%;margin-left:0}.simulator-coupling .desc-wrap.position-right:before{content:"";position:absolute;border:17px solid transparent;border-right-color:#fff;top:34px;left:-17px;margin-left:-17px}.simulator-coupling .desc-wrap.position-left{top:-32px;left:auto;right:100%;margin-left:0}.simulator-coupling .desc-wrap.position-left:before{content:"";position:absolute;border:17px solid transparent;border-left-color:#f0eef4;top:34px;left:auto;right:-34px;margin-left:-17px}.simulator-coupling .desc-wrap.position-top{top:auto;left:50%;right:auto;margin-left:-230px;bottom:calc(100% + 10px)}.simulator-coupling .desc-wrap.position-top:before{content:"";position:absolute;border:17px solid transparent;border-top-color:#f3f1f6;top:auto;bottom:-34px;left:50%;margin-left:-8px}.simulator-coupling .desc-wrap.position-top-left{top:auto;left:auto;right:0;margin-left:0;margin-right:15px;bottom:calc(100% + 10px)}.simulator-coupling .desc-wrap.position-top-left:before{content:"";position:absolute;border:17px solid transparent;border-top-color:#ebeaf1;top:auto;bottom:-34px;left:auto;right:20px;margin-left:-8px}.simulator-coupling .desc-wrap.position-top-left:after{height:30px;top:auto;bottom:-30px}.simulator-coupling .desc-wrap.position-top-right{top:auto;left:0;right:auto;margin-left:15px;bottom:calc(100% + 10px)}.simulator-coupling .desc-wrap.position-top-right:before{content:"";position:absolute;border:17px solid transparent;border-top-color:#fafafc;top:auto;bottom:-34px;left:30px;margin-left:-8px}.simulator-coupling .desc-wrap.position-top-right:after{height:30px;top:auto;bottom:-30px}.simulator-coupling .desc-wrap:before{content:"";position:absolute;border:17px solid transparent;border-bottom-color:#fff;top:-34px;left:50%;margin-left:-17px}.simulator-coupling .desc-wrap:after{content:"";position:absolute;height:30px;top:-30px;left:0;right:0;cursor:zoom-in}.simulator-coupling .desc-wrap h3{margin:0 0 0.3rem 0;font-size:0.9rem}.simulator-coupling .desc-wrap .logo{margin-top:-10px;width:100%;height:38px;background-repeat:no-repeat;background-position:right center;background-size:100%}.simulator-coupling .desc-wrap .text{font-size:0.7rem;padding:0.6rem 0}.simulator-coupling .desc-wrap .text p{font-size:0.7rem}.simulator-coupling .desc-wrap .footer{text-align:center}.simulator-coupling .desc-wrap .footer a{margin:0;font-size:0.7rem}.simulator-coupling .simulator.user{background-color:#9e9eac !important;color:#fff !important;box-shadow:inset 0 0 4px rgba(0,0,0,0.4)}.simulator-coupling .federates .domain .domain-inner .simulators .simulator-wrap:hover .simulator.user{background-color:#757589 !important;color:#fff}.simulator-coupling .simulator.extended{background-color:rgba(255,255,255,0.7) !important;border:1px dashed rgba(0,0,0,0.5);color:#222}.simulator-coupling .federates .domain .domain-inner .simulators .simulator-wrap:hover .simulator.extended{background-color:rgba(255,255,255,0.2) !important}.svg-wrap{text-align:center}.svg-wrap .inner{display:inline-block;padding:0.6rem;text-align:center;background-color:#f9f9fb;border-radius:0.4rem;border:1px solid #cbcbce;max-width:100%;width:100%}.svg-wrap .inner svg .messageText{stroke:transparent !important;font-family:"Lato", sans-serif !important}.svg-wrap .inner svg g,.svg-wrap .inner svg text{font-family:"Lato", sans-serif !important;line-height:1}.svg-wrap .inner svg div{font-family:"Lato", sans-serif !important;line-height:0.9rem;font-size:0.7rem}.svg-wrap .desc{padding-top:0.4rem;font-style:italic;color:#555}ul.menu-overview{padding:0;margin:1rem -15px}ul.menu-overview>li{list-style-type:none;margin-bottom:2rem;display:flex;width:100%}ul.menu-overview>li span.inner{padding:1rem 1.3rem 3rem;width:100%;position:relative;overflow:hidden}ul.menu-overview>li span.inner .title{display:block;font-weight:bold;font-size:0.9rem;padding-bottom:0.2rem}ul.menu-overview>li span.inner .subtitle img{margin:0.3rem 0 0.7rem;border:1px solid #ddd;border-radius:0.2rem;width:100%}ul.menu-overview>li span.inner .subtitle ul{padding-left:1.2rem;margin-top:-0.7rem}ul.menu-overview>li span.inner .subtitle ul li{list-style-type:none;position:relative}ul.menu-overview>li span.inner .subtitle ul li::marker{color:#777}ul.menu-overview>li span.inner .subtitle ul li::before{font-family:'Font Awesome 5 Free';font-weight:900;font-size:0.7rem;line-height:0;content:'\f00c';position:absolute;left:-1.1rem;top:0.7rem;color:#4f7813}ul.menu-overview>li span.inner .link-wrap{text-align:center;width:100%;display:block;position:absolute;left:0;bottom:0}ul.menu-overview>li span.inner .link-wrap a{display:block;margin:0;position:relative;padding-left:1.8rem;border-radius:0;background-color:#68145C;text-align:left}ul.menu-overview>li span.inner .link-wrap a::before{content:"»";font-size:1.1rem;position:absolute;left:1rem;top:1rem;line-height:0}ul.menu-overview>li span.inner .details{display:block;text-align:right;background:#e1dce6;color:#424b5f;text-decoration:none;font-weight:bold;font-size:medium;margin:1rem -1rem -0.7rem;margin-top:auto;padding:0.4rem 1rem;border-top:1px solid #d5c4d3;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}ul.menu-overview>li span.inner .details::before{content:"» ";font-size:larger;color:#424b5f;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}.wg-cards .cards{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap}.wg-cards .cards .overlay{top:-1rem;left:-1rem;right:-1rem;bottom:-1rem;width:calc(100% + 2rem);max-width:calc(100% + 2rem);background-color:rgba(255,255,255,0);-webkit-transition:background-color ease-in-out 1s;transition:background-color ease-in-out 1s}.wg-cards .cards .overlay.active{height:100%;z-index:100;background-color:rgba(255,255,255,0.8)}.wg-cards .cards .banner{position:absolute;left:2px;top:1.5rem;padding:7px 20px 7px 29px;background-color:#dad7df;border-top-left-radius:2px;border-top-right-radius:4px;border-bottom-right-radius:4px;box-shadow:3px 3px 2px rgba(0,0,0,0.2);text-shadow:1px 1px 0 rgba(255,255,255,0.3);z-index:1}.wg-cards .cards .banner::before{content:"";position:absolute;left:0;bottom:-13px;border:7px solid #9f9ba6;border-left-color:transparent !important;border-bottom-color:transparent !important}.wg-cards .cards .banner.mosaic-orange{background-color:#F88D2B;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-orange::before{border-color:#d06707}.wg-cards .cards .banner.mosaic-blue{background-color:#009DE2;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-blue::before{border-color:#006896}.wg-cards .cards .banner.mosaic-purple{background-color:#68145C;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-purple::before{border-color:#3d0c36}.wg-cards .cards .banner.mosaic-green{background-color:#7ABA1E;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-cards .cards .banner.mosaic-green::before{border-color:#4f7813}.wg-cards .cards .banner .subtitle{display:block;font-size:0.6rem;font-style:italic}.wg-cards .cards .banner .title{display:block;font-size:0.7rem;font-weight:bold}.wg-cards .cards .banner .title:not(.no-subtitle){margin-top:-0.2rem}.wg-cards .cards .card-wrap.blurred{filter:blur(2px);-webkit-filter:blur(2px)}.wg-cards .cards .card{height:100%;display:flex;flex-direction:column;position:relative}.wg-cards .cards .card .image img{height:auto;max-height:100%;max-weight:100%;transform:scale(1);transition:transform ease-in-out 0.2s}.wg-cards .cards .card .image a{width:100%;height:100%}.wg-cards .cards .card .image a img{max-width:100%;max-height:100%}.wg-cards .cards .card .image a img:hover{transform:scale(1.06)}.wg-cards .cards .card h4{text-transform:none}.wg-cards .cards .card .text{font-size:0.8rem}.wg-cards .cards .card .open-hidden-content{position:absolute;bottom:0;left:0;right:0;width:100%}.wg-cards .cards .card .button{position:absolute;bottom:0;left:0;right:0;width:100%}.wg-cards .cards .card .button a{display:block;margin:0;border-radius:0;padding:0.6rem 1.5rem}.wg-cards .cards .hidden-content{display:none;height:auto;z-index:100;opacity:0;transform:scale(0.7);box-shadow:0 1.3em 1.4rem 1rem rgba(24,21,30,0.17),inset 0 0 1px #aaa !important;-webkit-transition:all ease-in-out 0.6s;transition:all ease-in-out 0.6s}.wg-cards .cards .hidden-content.visible{transform:scale(1);display:block;opacity:1}.wg-cards .cards .hidden-content .close{z-index:1}.wg-cards .cards .hidden-content .close a i{color:#2D2252}.wg-cards .cards .hidden-content .text h3{font-size:1.1rem}.wg-cards .cards .hidden-content .text p{font-size:0.8rem}.wg-features-widget .feature{position:relative}.wg-features-widget .feature.feature-clone{position:absolute;z-index:10}.wg-features-widget .feature .banner{position:absolute;left:1px;top:1rem;padding:7px 20px 7px 29px;background-color:#dad7df;border-top-left-radius:2px;border-top-right-radius:4px;border-bottom-right-radius:4px;box-shadow:3px 3px 2px rgba(0,0,0,0.2);text-shadow:1px 1px 0 rgba(255,255,255,0.3)}.wg-features-widget .feature .banner::before{content:"";position:absolute;left:0;bottom:-14px;border:7px solid #9f9ba6;border-left-color:transparent !important;border-bottom-color:transparent !important}.wg-features-widget .feature .banner.mosaic-orange{background-color:#F88D2B;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-orange::before{border-color:#d06707}.wg-features-widget .feature .banner.mosaic-blue{background-color:#009DE2;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-blue::before{border-color:#006896}.wg-features-widget .feature .banner.mosaic-purple{background-color:#68145C;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-purple::before{border-color:#3d0c36}.wg-features-widget .feature .banner.mosaic-green{background-color:#7ABA1E;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.4)}.wg-features-widget .feature .banner.mosaic-green::before{border-color:#4f7813}.wg-features-widget .feature .banner .subtitle{display:block;font-size:0.6rem;font-style:italic}.wg-features-widget .feature .banner .title{display:block;font-size:0.7rem;font-weight:bold}.wg-features-widget .feature .banner .title:not(.no-subtitle){margin-top:-0.2rem}.wg-features-widget .feature .feature-inner{height:100%;font-size:0.8rem}.wg-features-widget .feature .feature-inner.has-banner{padding-top:2rem}.wg-features-widget .feature .feature-inner h3{margin-top:1rem}.wg-features-widget .feature .feature-inner .content{display:none;opacity:0}.wg-features-widget .feature .feature-inner .buttons{text-align:center}.wg-features-widget .feature .feature-inner .buttons a{margin-top:0;margin-right:0}.wg-hero{padding:40px 0}.wg-hero h1{font-size:larger}.wg-hero p{font-size:large}.wg-page-header{background-color:#ffffff;position:relative;padding-bottom:30px;overflow:hidden;margin-bottom:-80px}.wg-page-header::before{position:absolute;content:'';bottom:80px;width:100%;height:100%}.wg-page-header::after{position:absolute;content:'';bottom:80px;left:50%;transform:translateX(-50%);width:120%;height:120%;box-shadow:inset 0 0 20px 10px rgba(35,27,64,0.5),0 0 40px 10px rgba(217,206,215,0.8);border-bottom:2px solid #d9ced7}.wg-page-header>.container{position:relative;z-index:1}.wg-page-header h1,.wg-page-header h2,.wg-page-header h3,.wg-page-header h4,.wg-page-header h5,.wg-page-header h6{color:#fff}.wg-page-header .page-header-background{position:absolute;content:'';bottom:80px;left:0;width:100%;height:100%;background-repeat:no-repeat;background-size:100% 100%;background-position:bottom right}.wg-page-header .alignment-left{padding-top:2.3rem;padding-bottom:2.5rem}.wg-page-header .alignment-left .page-header-logo img{max-width:none;margin:-4.49rem 0 -2.8rem -1.9rem}.wg-page-header .alignment-left .section-heading{margin-left:9.6rem}.wg-page-header .alignment-left .section-heading p{color:#fff;font-style:normal;font-size:1.05rem}.wg-page-header .alignment-left .buttons{margin-bottom:0}.wg-page-header .alignment-left .buttons a.mosaic-btn{margin-top:0;margin-bottom:0.7rem;padding:0.4rem 1.2rem;min-width:9.4rem;text-align:left;margin-right:-0.7rem;font-size:0.8rem}.wg-page-header .alignment-center .section-heading h1{font-size:1.8rem}.wg-page-header .alignment-center .section-heading p{color:#fff;font-size:1rem}.wg-page-header .buttons .button{text-align:center}.wg-page-header .buttons .button a.mosaic-btn{margin:0 0.5rem}.wg-page-header .features .feature{display:flex;display:-webkit-flex;flex-wrap:wrap}.wg-page-header .features .feature .feature-inner{background-color:#fff;width:100%;color:#424b5f;padding:1.4rem 1.4rem 2.3rem 1.4rem;border:0;overflow:hidden;height:100%;border-radius:1rem;box-shadow:0.4rem 0.5rem 0.5rem rgba(45,44,47,0.2);transition:all 0.2s ease;-webkit-transition:all 0.2s ease;position:relative}.wg-page-header .features .feature .feature-inner.is-linked-feature:hover{transform:scale(1.04);background-image:none;box-shadow:0 10px 20px -10px rgba(45,34,82,0.8)}.wg-page-header .features .feature .feature-inner.is-linked-feature:hover p.feature-link{background-image:linear-gradient(-45deg, #872E51 0%, #F88D2B 210%)}.wg-page-header .features .feature .feature-inner h3{margin-top:0;font-size:unset;color:#2D2252}.wg-page-header .features .feature .feature-inner h3 i{font-size:0.8rem;margin-right:0.3rem}.wg-page-header .features .feature .feature-inner a.linked-feature{color:#424b5f;text-decoration:none;margin:0;padding:0}.wg-page-header .features .feature .feature-inner a.linked-feature p{font-weight:normal}.wg-page-header .features .feature .feature-inner p{font-size:medium}.wg-page-header .features .feature .feature-inner p.feature-link{background-image:linear-gradient(-45deg, #57114d -30%, #751667 40%);color:#fff;margin:1rem -1.4rem -1.4rem;padding:0.4rem 1.4rem 0.5rem;border-top:1px solid #d5c4d3;text-decoration:none;font-weight:bold !important;font-size:medium;transition:all 0.2s ease;-webkit-transition:all 0.2s ease;position:absolute;bottom:0;left:29px;right:29px;margin-bottom:0}.wg-page-header .features .feature .feature-inner p.feature-link::before{content:"» ";font-size:larger;color:#fff;transition:all 0.2s ease;-webkit-transition:all 0.2s ease}.wg-page-header .features .feature .feature-inner a.feature-link:hover{color:#2D2252}.wg-page-header .features .feature .feature-inner a.feature-link:hover::before{padding-right:3px}@media screen and (max-width: 576px){.wg-page-header .alignment-left .page-header-logo img{max-width:none;margin:-4.49rem 0 -2.8rem -2.1rem;width:120%}.wg-page-header .alignment-left .section-heading{margin-left:0;width:100%;padding:2rem 1.5rem 0;text-align:center !important}.wg-page-header .alignment-left .section-heading p{font-size:1.15rem;margin-bottom:0}}body.page-community .wg-page-header,body.page-home .wg-page-header{margin-bottom:0;padding-bottom:3rem}body.page-community .wg-page-header,body.page-home .wg-page-header{padding-bottom:3.3rem}body.page-home .page-header{margin-bottom:-1.9rem}body.page-community .wg-page-header .page-header{margin-bottom:-2.87rem}@media screen and (max-width: 576px){.wg-page-header{padding-bottom:4rem !important}}@media screen and (max-width: 960px){.wg-page-header .features .feature .feature-inner p.feature-link{left:15px;right:15px}}.wg-portfolio .projects-container{overflow:visible}.wg-portfolio .card{padding:0}.wg-portfolio .card .card-image{margin:2.2rem 2.6rem 0}.wg-portfolio .card .card-text{padding:0 1.3rem 1.3rem}.wg-portfolio .card .card-text p{color:inherit;font-size:0.8rem}.wg-portfolio .project-showcase .project-item{margin-bottom:4.5rem}.wg-portfolio .project-showcase .project-item h3{font-size:1.4rem;padding-bottom:0.9rem}.wg-portfolio .project-showcase .project-item img{border-radius:0.7rem}.article-metadata{margin-top:0.7rem;padding-top:0.5rem;border-top:2px dotted #bbb}h3.article-title{font-size:1.3rem}@media screen and (max-width: 576px){.wg-portfolio .project-showcase .project-item{margin-bottom:0.5rem}}.wg-projects .projects .project{padding-bottom:1rem;margin-bottom:1rem;border-bottom:2px dotted #ccc}.wg-projects .projects .project:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.wg-projects .projects .project .logo .view-list-item{width:100%}.wg-projects .projects .project .text h2{font-size:1.1rem;margin:0 0 0.3rem 0}.wg-projects .projects .project .text h3{font-size:0.9rem;margin:0 0 0.1rem 0}.wg-projects .projects .project .text .desc{font-size:0.8rem}.wg-projects .projects .project .buttons a{margin:1rem 0.3rem 0}.wg-text-image .title{text-align:center;padding-bottom:0.8em}.wg-text-image .text-and-buttons{font-size:0.87rem}.wg-text-image .buttons a.mosaic-btn{margin-top:0;margin-bottom:0}.wg-text-card .card.without-background{box-shadow:none;border:0;border-radius:0}.wg-text-card .card.without-background h2{font-size:1.3rem;padding-top:1.1rem;padding-bottom:0.6rem;position:relative;text-align:left;color:#2D2252}.wg-text-card .card.without-background h2::after{left:0;bottom:0;right:0;content:"";height:3px;background-image:linear-gradient(90deg, #F88D2B, #2D2252);position:absolute;border-radius:1rem}.wg-text-card .card.without-background h3{font-size:1.1rem}.wg-text-card .card.without-background .card-body p{font-size:0.85rem !important}.wg-text-card .card.without-background .card-footer{background:none;border:0;flex:1 1 auto;min-height:1px;padding:0 1.25rem}.wg-text-card .card.without-background .card-footer a.mosaic-btn{margin:0}.wg-text-card .card .card-text h3:first-child{margin-top:0;padding-top:0}.wg-text-card .card .card-image{padding-top:0.75rem}body{font-size:0.9rem}.navbar-brand img{max-height:46px;height:200px}@media screen and (max-width: 576px){.navbar-brand img{max-height:34px}}.article-style{font-size:0.8rem}a,h3.article-title a{color:#68145C}a:hover,h3.article-title a:hover{color:#F88D2B}a{font-weight:bold;color:#990c86;transition:all ease-in-out 0.1s !important;-webkit-transition:all ease-in-out 0.1s !important}table a{color:#68145C}iframe{border:2px solid #ccc}nav a{color:#2D2252;font-weight:normal}nav a,h3.article-title a{text-decoration:none}h1,h2,h3,h4,h5,h6{color:#2D2252}h1{font-size:1.75rem}hr{height:0}.todo{background-color:yellow;border-radius:2px;border:1px solid red;padding:2px 3px}.todo::before{content:"TODO: ";font-weight:bold;text-decoration:underline}body.page-docs #navbar-main>.container{max-width:1700px}@media only screen and (min-width: 1001px){.universal-wrapper{width:1200px}}#navbar-main{background-color:#f8f4fb}#navbar-main .main-menu-item ul li .nav-link{color:#2D2252}#navbar-main .main-menu-item ul li .nav-link.active{color:#68145C !important;text-decoration:underline}#navbar-main .navbar-icons .nav-item .nav-link{color:#2D2252}.home-section{padding:50px 0 70px}@media screen and (max-width: 576px){.home-section{padding:1rem 0}}.section-heading h1{margin-bottom:1rem}.section-heading p{color:#817f88;font-style:italic}.features .feature .feature-inner .image{width:100%;text-align:center;background-size:contain;background-position:bottom center;background-repeat:no-repeat}.wg-partners .image-text-block:first-of-type{padding-bottom:0.8rem;margin-bottom:1.9rem !important;border-bottom:2px dotted #ccc}.wg-partners .partner-logos a img{transform:scale(1);-webkit-transition:transform ease-in-out 0.2s;transition:transform ease-in-out 0.2s}.wg-partners .partner-logos a img:hover{transform:scale(1.07)}#news img{border-radius:0.7rem}
diff --git a/docs/building_scenarios/files/ScenarioConvertFunctions.txt b/docs/building_scenarios/files/ScenarioConvertFunctions.txt
index dd73692..26e30a3 100644
--- a/docs/building_scenarios/files/ScenarioConvertFunctions.txt
+++ b/docs/building_scenarios/files/ScenarioConvertFunctions.txt
@@ -41,7 +41,7 @@
                                            operation (OSM File/Database file/SUMO net file/SUMO route file).
  -s,--sumo-prefix <STRING>                 Prefix for the generated sumo files  (uses database name when not defined).
  -f,--force                                Force overwrite of existing files instead of incrementing file names.
- -m,--mapping-file <PATH>                  Uses the given mapping3 configuration to export existing vehicleTypes and
+ -m,--mapping-file <PATH>                  Uses the given mapping configuration to export existing vehicleTypes and
                                            vehicles data to *.rou.xml (with --export-routes).
     --import-lat <DOUBLE>                  Center latitude of imported region to project coordinates.
     --import-lon <DOUBLE>                  Center longitude of imported region to project coordinates.
diff --git a/docs/building_scenarios/files/barnim_mosaic_config.xml b/docs/building_scenarios/files/barnim_mosaic_config.xml
index 54cb111..35f34a6 100644
--- a/docs/building_scenarios/files/barnim_mosaic_config.xml
+++ b/docs/building_scenarios/files/barnim_mosaic_config.xml
@@ -54,7 +54,7 @@
         <federate id="battery" active="true"/>
         <federate id="chargingstation" active="false"/>
         <!-- Mapping -->
-        <federate id="mapping3" active="true"/>
+        <federate id="mapping" active="true"/>
         <!-- Visualization -->
         <federate id="visualizer" active="true"/>
     </federates>
diff --git a/docs/building_scenarios/files/steglitz_config.json b/docs/building_scenarios/files/steglitz_config.json
index bc77acd..e0d80b6 100644
--- a/docs/building_scenarios/files/steglitz_config.json
+++ b/docs/building_scenarios/files/steglitz_config.json
@@ -1,10 +1,9 @@
 {
-  "operatingMode":          "osm2vsimrti",
-
-  "inputFile":              "steglitz.osm",
-  "executeOsmosis":         true,
-  "generateRoutes":         true,
-  "routeBeginLatLon":       "52.457616,13.318392",
-  "routeEndLatLon":         "52.454774,13.333554",
-  "numberOfRoutes":         3
+  "operatingMode": "osm2mosaic",
+  "inputFile": "steglitz.osm",
+  "executeOsmosis": true,
+  "generateRoutes": true,
+  "routeBeginLatLon": "52.457616,13.318392",
+  "routeEndLatLon": "52.454774,13.333554",
+  "numberOfRoutes": 3
 }
\ No newline at end of file
diff --git a/docs/building_scenarios/index.html b/docs/building_scenarios/index.html
index 317a50b..fbde85e 100644
--- a/docs/building_scenarios/index.html
+++ b/docs/building_scenarios/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/building_scenarios/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/building_scenarios/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/building_scenarios/">
-  <meta property="og:title" content="Simulation Scenarios | Eclipse MOSAIC">
+  <meta property="og:title" content="Simulation Scenarios | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Simulation Scenarios | Eclipse MOSAIC</title>
+  <title>Simulation Scenarios | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -767,7 +771,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -832,27 +871,17 @@
 </code></pre>
 <p>The following fields needs to be configured:</p>
 <ul>
-<li>
-<p><strong><code>id</code></strong> - The name of the scenario</p>
-</li>
-<li>
-<p><strong><code>duration</code></strong> - The duration of the simulation in seconds.</p>
-</li>
-<li>
-<p><strong><code>randomSeed</code></strong> - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken.</p>
-</li>
-<li>
-<p><strong><code>projection</code></strong> - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting
+<li><strong><code>id</code></strong> - The name of the scenario</li>
+<li><strong><code>duration</code></strong> - The duration of the simulation in seconds.</li>
+<li><strong><code>randomSeed</code></strong> - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken.</li>
+<li><strong><code>projection</code></strong> - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting
 here is crucial to get correct results that map to real world coordinates so the simulation results can be visualized in some way.
 The center coordinate will be used to determine the correct UTM zone, the <code>cartesianOffset</code> can be determined by having a look at the traffic simulators network file,
-e.g. SUMOs <code>*.net.xml</code> contains this information in the <code>netOffset</code> attribute of the location tag.</p>
-</li>
-<li>
-<p><strong><code>network</code></strong> - Within this config the address resolution scheme is specified. The subnets for all unit types are described here. Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address space would be to small to provide enough addresses. In such cases, the <code>netMask</code> and all <code>subnets</code> have to be configured accordingly.</p>
-</li>
-<li>
-<p>Last but not least, the <strong><code>federate</code></strong> tags define which simulators are active in the simulation.</p>
-</li>
+e.g. SUMOs <code>*.net.xml</code> contains this information in the <code>netOffset</code> attribute of the location tag.</li>
+<li><strong><code>network</code></strong> - Within this config the address resolution scheme is specified. The subnets for all unit types are described here.
+Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address
+space would be to small to provide enough addresses. In such cases, the <code>netMask</code> and all <code>subnets</code> have to be configured accordingly.</li>
+<li>Last but not least, the <strong><code>federate</code></strong> tags define which simulators are active in the simulation.</li>
 </ul>
 <h2 id="traffic-simulator-configuration">Traffic Simulator Configuration</h2>
 <p>The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. <code>sumo</code> .
diff --git a/docs/building_scenarios/index.xml b/docs/building_scenarios/index.xml
index d9d7c5a..04b343a 100644
--- a/docs/building_scenarios/index.xml
+++ b/docs/building_scenarios/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Simulation Scenarios | Eclipse MOSAIC</title>
+    <title>Simulation Scenarios | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/building_scenarios/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/building_scenarios/index.xml" rel="self" type="application/rss+xml" />
     <description>Simulation Scenarios</description>
@@ -33,9 +33,12 @@
 routes or  build own routes via route generation tools (e.g. DUAROUTER by SUMO).&lt;/p&gt;
 &lt;p&gt;This chapter intends to highlight the most common workflows for the work with &lt;code&gt;scenario-convert&lt;/code&gt;.
 We will be using &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;&lt;code&gt;this&lt;/code&gt;&lt;/a&gt; OSM-file for most of the
-use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.
-For a complete reference of the script please check 
-&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
+use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.&lt;/p&gt;
+&lt;div class=&#34;alert alert-note&#34;&gt;
+  &lt;div&gt;
+&lt;p&gt;&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;Complete reference of the scenario-convert script&lt;/a&gt;.&lt;/p&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
 
 
 
@@ -132,7 +135,8 @@
 &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm
 &lt;/code&gt;&lt;/pre&gt;
 &lt;div class=&#34;row&#34;&gt;
-  
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -166,7 +170,9 @@
 
 &lt;/figure&gt;
 
-  
+    &lt;/div&gt;
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -200,9 +206,11 @@
 
 &lt;/figure&gt;
 
+    &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class=&#34;row&#34;&gt;
-  
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -236,7 +244,9 @@
 
 &lt;/figure&gt;
 
-  
+    &lt;/div&gt;
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -270,82 +280,11 @@
 
 &lt;/figure&gt;
 
+    &lt;/div&gt;
 &lt;/div&gt;
-&lt;p&gt;
-
-
-
-
-
-
-
-  
-  
-
-
-&lt;div class=&#34;gallery&#34;&gt;
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-    
-      
-    
-  
-  
-  &lt;a data-fancybox=&#34;gallery-gallery&#34; data-caption=&#34;Uncleaned OSM-file&#34; href=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_uncleaned.png&#34;&gt;
-    &lt;img data-src=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_uncleaned.png&#34; alt=&#34;&#34;&gt;
-  &lt;/a&gt;
-  
-  
-  
-  
-    
-      
-    
-  
-  
-  &lt;a data-fancybox=&#34;gallery-gallery&#34; data-caption=&#34;Cleaned OSM-File&#34; href=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_cleaned.png&#34;&gt;
-    &lt;img data-src=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_cleaned.png&#34; alt=&#34;&#34;&gt;
-  &lt;/a&gt;
-  
-  
-  
-&lt;/div&gt;
-To avoid &amp;ldquo;cleaning&amp;rdquo; the OSM-file, please use the option &amp;ldquo;skip-osm-filter&amp;rdquo;.&lt;/p&gt;
+&lt;p&gt;To avoid &amp;ldquo;cleaning&amp;rdquo; the OSM-file, please use the option &amp;ldquo;skip-osm-filter&amp;rdquo;.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter
 &lt;/code&gt;&lt;/pre&gt;
-
-
-
-
-
-
-
-
-  
-  
-
-
-&lt;div class=&#34;gallery&#34;&gt;
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-&lt;/div&gt;
 &lt;p&gt;&lt;strong&gt;Generating Routes&lt;/strong&gt;&lt;br&gt;
 The scenario-convert also offers the option &lt;code&gt;--generate-routes&lt;/code&gt;, which will generate
 a route-file, given some additional information. For example purposes we will run the
@@ -482,19 +421,157 @@
 &lt;h2 id=&#34;reference-documentation-for-scenario-convert&#34;&gt;Reference documentation for scenario-convert&lt;/h2&gt;
 &lt;h3 id=&#34;usage-of-scenario-convert&#34;&gt;Usage of scenario-convert&lt;/h3&gt;
 &lt;p&gt;The following listing shows an overview for the usage of scenario-convert:&lt;/p&gt;
-&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/ScenarioConvertFunctions.txt&#34; download&gt;scenarioConvertFunctions&lt;/a&gt;&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt; Usage: scenario-convert [OPERATION] -d &amp;lt;DATABASEFILE&amp;gt; [OPTIONS]*
+
+ Examples (options in [] are optional):
+ 1. Import an osm file and write data into database
+  scenario-convert --osm2db -i &amp;lt;OSMFILE&amp;gt; [-o] [-d &amp;lt;DATABASE&amp;gt;]
+ 2. Export db content to sumo-readable files
+  scenario-convert --db2sumo -d &amp;lt;DATABASE&amp;gt; [-s &amp;lt;SUMOPREFIX&amp;gt;] [-n]
+ 3. Reimport a sumo routefile into a database
+  scenario-convert --sumo2db -d &amp;lt;DATABASE&amp;gt; -i &amp;lt;ROUTEFILE&amp;gt;
+ 4. Combine steps 1 and 2
+  scenario-convert --osm2sumo -d &amp;lt;DATABASE&amp;gt; -i &amp;lt;OSMFILE&amp;gt; [-s &amp;lt;SUMOPREFIX&amp;gt;]
+ 5. Export db content to Shapefile format
+  scenario-convert --db2shp -d &amp;lt;DATABASE&amp;gt;
+ 6. Import an srtm file and write elevation data to nodes of an existing database
+  scenario-convert --srtm2db -i &amp;lt;SRTMFILE&amp;gt; -d &amp;lt;DATABASE&amp;gt;
+
+-------------------------------------------------------------------------------
+
+ CONFIGURATION FILE:
+ -h,--help                                 Prints this help screen.
+
+ -c,--config-file &amp;lt;PATH&amp;gt;                   Optional, refers to a configuration file which contains all parameters in
+                                           JSON format.
+    --osm2db                               Converts a OpenStreetMap file to a new scenario database.
+    --sumo2db                              Imports a SUMO Network/Routefile. Be aware that you may have to re-export an
+                                           imported network.
+    --srtm2db                              Imports an SRTM file and writes elevation data to nodes.
+    --db2sumo                              Exports the network to SUMO node and edge files.
+    --db2shp                               Exports the database into Shapefile format.
+    --db2mosaic                            Creates directory structure for a MOSAIC scenario based on the database
+                                           contents.
+    --osm2sumo                             Combination of osm2db and db2sumo.
+    --osm2mosaic                           Combination of osm2db and db2vsimrti.
+    --update                               Updates the database to the current scheme.
+
+ -d,--database &amp;lt;PATH&amp;gt;                      The path to the database.
+                                           For import: File to import to. If not given, a new file is created.
+                                           For export: File to load from.
+                                           For update operations: file to update.
+ -i,--input &amp;lt;PATH&amp;gt;                         Defines an input file to use in an import. File type depends on the import
+                                           operation (OSM File/Database file/SUMO net file/SUMO route file).
+ -s,--sumo-prefix &amp;lt;STRING&amp;gt;                 Prefix for the generated sumo files  (uses database name when not defined).
+ -f,--force                                Force overwrite of existing files instead of incrementing file names.
+ -m,--mapping-file &amp;lt;PATH&amp;gt;                  Uses the given mapping configuration to export existing vehicleTypes and
+                                           vehicles data to *.rou.xml (with --export-routes).
+    --import-lat &amp;lt;DOUBLE&amp;gt;                  Center latitude of imported region to project coordinates.
+    --import-lon &amp;lt;DOUBLE&amp;gt;                  Center longitude of imported region to project coordinates.
+    --import-zone &amp;lt;STRING&amp;gt;                 UTM zone of location for projecting coords in default format (e.g. 32n).
+
+ -g,--generate-routes                      Generates route(s) from one point to another. The begin and end for the route
+                                           must be known (see below options).
+    --route-begin-lat &amp;lt;DOUBLE&amp;gt;             Latitude of the starting point, needs --route-begin-lon as well.
+    --route-begin-lon &amp;lt;DOUBLE&amp;gt;             Longitude of the starting point, needs --route-begin-lat as well.
+    --route-begin-latlon &amp;lt;DOUBLE,DOUBLE&amp;gt;   [latitude],[longitude] of the starting point.
+    --route-begin-node-id &amp;lt;STRING&amp;gt;         OSM node id of the starting point (use instead of lat/lon).
+    --route-end-lat &amp;lt;DOUBLE&amp;gt;               Latitude of the starting point, needs --route-end-lon as well.
+    --route-end-lon &amp;lt;DOUBLE&amp;gt;               Longitude of the starting point, needs --route-end-lat as well.
+    --route-end-latlon &amp;lt;DOUBLE,DOUBLE&amp;gt;     [latitude],[longitude] of the ending point.
+    --route-end-node-id &amp;lt;STRING&amp;gt;           OSM node id of the ending point (use instead of lat/lon).
+    --route-matrix &amp;lt;STRING,STRING,...&amp;gt;     Calculates all possible routes starting and ending at the given nodes, given
+                                           as comma-separated list (e.g. 12345,87123,89123)
+    --number-of-routes &amp;lt;INTEGER&amp;gt;           Defines the number of alternative routes to be calculated (default=1).
+
+    --skip-osm-filter                      Skips automatic filtering of the OSM file (only with osm2xxx).
+ -b,--import-buildings                     Write OSM building information in database.
+    --ignore-turn-restrictions             Ignore all defined turn restrictions on OSM import.
+    --disable-graph-cleanup                Turns off the removal of unconnected parts from the main traffic network
+                                           graph . Since several components of VSimRTI require one main graph without
+                                           disconnected ways and nodes, this option should be used only if the cleanup
+                                           procedure is faulty.
+    --skip-netconvert                      Skips automatic starting sumo netconvert for creating netfile (only with xxx2sumo).
+    --skip-traffic-lights-export           Skips automatic exporting traffic light information for nodes (only with xxx2sumo).
+    --osm-speeds-file &amp;lt;PATH&amp;gt;               Define a property file which contains speed information which are used to set
+                                           the speed for OSM ways without a max speed tag (only with osm2xxx).
+    --osm-speeds-overwrite                 If set to true , the maxspeed tags of ways are ignored and replaced by either
+                                           default values , or by speed information defined via the --osm-speeds-file
+                                           option (only with osm2xxx).
+
+-------------------------------------------------------------------------------
+
+ File placement:
+   When a database file is given with -d every created file will be placed by
+   the database file in the given path. When the file is passed without a path
+   the path used to execute the command from will be used as a base.
+   For import operations where -d is omited all files will be placed alongside
+   the input file given.
+
+   When a file to be created already exist the filename will be postfixed with
+   an incrementing number. This behaviour can be overwritten
+
+-------------------------------------------------------------------------------
+
+&lt;/code&gt;&lt;/pre&gt;
 &lt;h3 id=&#34;configuration-files-for-scenario-convert&#34;&gt;Configuration-files for scenario-convert&lt;/h3&gt;
 &lt;p&gt;Scenario-convert offers a way to safe your conversion-parameters in a &lt;code&gt;JSON&lt;/code&gt; configuration file using
 the option &lt;code&gt;-c&lt;/code&gt; or &lt;code&gt;--config-file&lt;/code&gt;.&lt;br&gt;
 The following listing shows how to save the options used in the example above:&lt;/p&gt;
-&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz_config.json&#34; download&gt;steglitzConfigFile&lt;/a&gt;&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;{
+  &amp;#34;operatingMode&amp;#34;: &amp;#34;osm2mosaic&amp;#34;,
+  &amp;#34;inputFile&amp;#34;: &amp;#34;steglitz.osm&amp;#34;,
+  &amp;#34;executeOsmosis&amp;#34;: true,
+  &amp;#34;generateRoutes&amp;#34;: true,
+  &amp;#34;routeBeginLatLon&amp;#34;: &amp;#34;52.457616,13.318392&amp;#34;,
+  &amp;#34;routeEndLatLon&amp;#34;: &amp;#34;52.454774,13.333554&amp;#34;,
+  &amp;#34;numberOfRoutes&amp;#34;: 3
+}
+&lt;/code&gt;&lt;/pre&gt;
 &lt;h3 id=&#34;speed-files&#34;&gt;Speed-files&lt;/h3&gt;
 &lt;p&gt;Below you can find a properties file which can be used during the import of OSM data
 in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the
 option &lt;code&gt;--osm-speeds-file &amp;lt;FILE&amp;gt;&lt;/code&gt;. In the speed properties file, for each way type a speed value can
 be defined, according to the OSM 
 &lt;a href=&#34;http://wiki.openstreetmap.org/wiki/Key:highway&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;highway&lt;/code&gt;&lt;/a&gt; key.&lt;/p&gt;
-&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/car-speeds.properties&#34; download&gt;speed-properties&lt;/a&gt;&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;# the unit the speed values are defined in [kmh, ms]
+speed.unit = kmh
+
+# the default speed for all way types which are not defined here
+speed.default = 30
+        
+# autobahn
+highway.motorway = 130
+highway.motorway_link = 70
+
+# bundesstrasse (germany)
+highway.trunk = 70
+highway.trunk_link = 65
+
+# linking bigger town
+highway.primary = 65
+highway.primary_link = 60
+
+# linking towns &amp;#43; villages
+highway.secondary = 60
+highway.secondary_link = 50
+
+#streets without middle line separation
+highway.tertiary = 50
+highway.tertiary_link = 40
+highway.residential = 30
+
+#special roads
+highway.living_street = 5
+highway.service = 20
+
+# unclassified roads
+highway.unclassified = 30
+highway.road = 20
+
+# forest tracks
+highway.track 15
+&lt;/code&gt;&lt;/pre&gt;
 </description>
     </item>
     
@@ -547,17 +624,29 @@
 to get more details on possible adaptions.&lt;br&gt;
 Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
 follow.&lt;/p&gt;
-&lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/images/steglitz_routes.mp4&#34;&gt;Watch scenario&lt;/a&gt;&lt;/p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+&lt;video controls &gt;
+  &lt;source src=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/images/steglitz_routes.mp4&#34; type=&#34;video/mp4&#34;&gt;
+&lt;/video&gt;
 &lt;h2 id=&#34;communication-simulators-cell-ns3-omnetpp-sns&#34;&gt;Communication Simulators (cell, ns3, omnetpp, sns)&lt;/h2&gt;
 &lt;p&gt;We won&amp;rsquo;t implement any functionality for the steglitz example here but rather have a look at the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &amp;lt;a href=&amp;quot;/docs/building_scenarios/files/barnim_mosaic_config.xml&amp;quot; download&lt;/p&gt;
-&lt;blockquote&gt;
-&lt;p&gt;&lt;code&gt;scenario_config.json&lt;/code&gt;
-.xml`&lt;/a&gt; of the Barnim scenario you can
-see where the communication simulators are activated.&lt;/p&gt;
-&lt;/blockquote&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
+communication simulators are activated:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
     &amp;quot;cell&amp;quot;: false,
     &amp;quot;omnetpp&amp;quot;: false,
@@ -567,14 +656,14 @@
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;Our 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials&#34;&gt;tutorials&lt;/a&gt; and 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#additional-examples&#34;&gt;additional examples&lt;/a&gt;
-demonstrate use cases for
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/additional_examples/&#34;&gt;additional examples&lt;/a&gt; demonstrate use cases for
 communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
 recommend copying the configuration-files for the simulator you are going to use from the 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim scenario&lt;/a&gt;. It
 contains the most complete configurations and is well maintained.&lt;br&gt;
 If you are an expert with one of the external network simulators (
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns3&lt;/a&gt;, 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns3&lt;/a&gt;,
+
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;) the Barnim scenario will also give
 you an overview on how to configure those.&lt;/p&gt;
 &lt;h2 id=&#34;other-simulators&#34;&gt;Other Simulators&lt;/h2&gt;
diff --git a/docs/building_scenarios/scenario_configuration/index.html b/docs/building_scenarios/scenario_configuration/index.html
index f9afa02..2c77272 100644
--- a/docs/building_scenarios/scenario_configuration/index.html
+++ b/docs/building_scenarios/scenario_configuration/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/">
-  <meta property="og:title" content="Additional Scenario Configuration | Eclipse MOSAIC">
+  <meta property="og:title" content="Additional Scenario Configuration | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Additional Scenario Configuration | Eclipse MOSAIC</title>
+  <title>Additional Scenario Configuration | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -770,7 +774,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -822,17 +861,29 @@
 to get more details on possible adaptions.<br>
 Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
 follow.</p>
-<p>
-<a href="/docs/building_scenarios/images/steglitz_routes.mp4">Watch scenario</a></p>
+
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+<video controls >
+  <source src="/docs/building_scenarios/images/steglitz_routes.mp4" type="video/mp4">
+</video>
 <h2 id="communication-simulators-cell-ns3-omnetpp-sns">Communication Simulators (cell, ns3, omnetpp, sns)</h2>
 <p>We won&rsquo;t implement any functionality for the steglitz example here but rather have a look at the
 
-<a href="/tutorials/barnim_basic">Barnim</a>-tutorial. In the &lt;a href=&quot;/docs/building_scenarios/files/barnim_mosaic_config.xml&quot; download</p>
-<blockquote>
-<p><code>scenario_config.json</code>
-.xml`</a> of the Barnim scenario you can
-see where the communication simulators are activated.</p>
-</blockquote>
+<a href="/tutorials/barnim_basic">Barnim</a>-tutorial. In the <code>scenario_config.json</code> of the Barnim scenario you can see where the
+communication simulators are activated:</p>
 <pre><code class="language-json">&quot;federates&quot;: {
     &quot;cell&quot;: false,
     &quot;omnetpp&quot;: false,
@@ -842,14 +893,14 @@
 </code></pre>
 <p>Our 
 <a href="/tutorials">tutorials</a> and 
-<a href="/docs/simulators/application_simulator/#additional-examples">additional examples</a>
-demonstrate use cases for
+<a href="/tutorials/additional_examples/">additional examples</a> demonstrate use cases for
 communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
 recommend copying the configuration-files for the simulator you are going to use from the 
 <a href="/tutorials/barnim_basic/">Barnim scenario</a>. It
 contains the most complete configurations and is well maintained.<br>
 If you are an expert with one of the external network simulators (
-<a href="/docs/simulators/network_simulator_ns3">ns3</a>, 
+<a href="/docs/simulators/network_simulator_ns3">ns3</a>,
+
 <a href="/docs/simulators/network_simulator_omnetpp">OMNeT++</a>) the Barnim scenario will also give
 you an overview on how to configure those.</p>
 <h2 id="other-simulators">Other Simulators</h2>
diff --git a/docs/building_scenarios/scenario_convert/index.html b/docs/building_scenarios/scenario_convert/index.html
index e1cb23f..9f7147d 100644
--- a/docs/building_scenarios/scenario_convert/index.html
+++ b/docs/building_scenarios/scenario_convert/index.html
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/">
-  <meta property="og:title" content="Scenario Convert | Eclipse MOSAIC">
+  <meta property="og:title" content="Scenario Convert | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The tool scenario-convert is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
@@ -271,7 +271,7 @@
 
 
 
-  <title>Scenario Convert | Eclipse MOSAIC</title>
+  <title>Scenario Convert | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -327,7 +327,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -340,7 +340,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -740,6 +740,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -778,7 +782,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -802,9 +841,12 @@
 routes or  build own routes via route generation tools (e.g. DUAROUTER by SUMO).</p>
 <p>This chapter intends to highlight the most common workflows for the work with <code>scenario-convert</code>.
 We will be using <a href="/docs/building_scenarios/files/steglitz.osm" download><code>this</code></a> OSM-file for most of the
-use cases So feel free to follow along with the steps to get a better understanding on how the <code>scenario-convert</code>-script functions.
-For a complete reference of the script please check 
-<a href="#reference-documentation-for-scenario-convert">here</a>.</p>
+use cases So feel free to follow along with the steps to get a better understanding on how the <code>scenario-convert</code>-script functions.</p>
+<div class="alert alert-note">
+  <div>
+<p><a href="#reference-documentation-for-scenario-convert">Complete reference of the scenario-convert script</a>.</p>
+  </div>
+</div>
 
 
 
@@ -901,7 +943,8 @@
 <pre><code class="language-bash">java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm
 </code></pre>
 <div class="row">
-  
+    <div class="col-6">
+        
 
 
 
@@ -935,7 +978,9 @@
 
 </figure>
 
-  
+    </div>
+    <div class="col-6">
+        
 
 
 
@@ -969,9 +1014,11 @@
 
 </figure>
 
+    </div>
 </div>
 <div class="row">
-  
+    <div class="col-6">
+        
 
 
 
@@ -1005,7 +1052,9 @@
 
 </figure>
 
-  
+    </div>
+    <div class="col-6">
+        
 
 
 
@@ -1039,82 +1088,11 @@
 
 </figure>
 
+    </div>
 </div>
-<p>
-
-
-
-
-
-
-
-  
-  
-
-
-<div class="gallery">
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-    
-      
-    
-  
-  
-  <a data-fancybox="gallery-gallery" data-caption="Uncleaned OSM-file" href="/mosaic/img/osm_uncleaned.png">
-    <img data-src="/mosaic/img/osm_uncleaned.png" alt="">
-  </a>
-  
-  
-  
-  
-    
-      
-    
-  
-  
-  <a data-fancybox="gallery-gallery" data-caption="Cleaned OSM-File" href="/mosaic/img/osm_cleaned.png">
-    <img data-src="/mosaic/img/osm_cleaned.png" alt="">
-  </a>
-  
-  
-  
-</div>
-To avoid &ldquo;cleaning&rdquo; the OSM-file, please use the option &ldquo;skip-osm-filter&rdquo;.</p>
+<p>To avoid &ldquo;cleaning&rdquo; the OSM-file, please use the option &ldquo;skip-osm-filter&rdquo;.</p>
 <pre><code class="language-bash">java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter
 </code></pre>
-
-
-
-
-
-
-
-
-  
-  
-
-
-<div class="gallery">
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-</div>
 <p><strong>Generating Routes</strong><br>
 The scenario-convert also offers the option <code>--generate-routes</code>, which will generate
 a route-file, given some additional information. For example purposes we will run the
@@ -1251,19 +1229,157 @@
 <h2 id="reference-documentation-for-scenario-convert">Reference documentation for scenario-convert</h2>
 <h3 id="usage-of-scenario-convert">Usage of scenario-convert</h3>
 <p>The following listing shows an overview for the usage of scenario-convert:</p>
-<p><a href="/docs/building_scenarios/files/ScenarioConvertFunctions.txt" download>scenarioConvertFunctions</a></p>
+<pre><code> Usage: scenario-convert [OPERATION] -d &lt;DATABASEFILE&gt; [OPTIONS]*
+
+ Examples (options in [] are optional):
+ 1. Import an osm file and write data into database
+  scenario-convert --osm2db -i &lt;OSMFILE&gt; [-o] [-d &lt;DATABASE&gt;]
+ 2. Export db content to sumo-readable files
+  scenario-convert --db2sumo -d &lt;DATABASE&gt; [-s &lt;SUMOPREFIX&gt;] [-n]
+ 3. Reimport a sumo routefile into a database
+  scenario-convert --sumo2db -d &lt;DATABASE&gt; -i &lt;ROUTEFILE&gt;
+ 4. Combine steps 1 and 2
+  scenario-convert --osm2sumo -d &lt;DATABASE&gt; -i &lt;OSMFILE&gt; [-s &lt;SUMOPREFIX&gt;]
+ 5. Export db content to Shapefile format
+  scenario-convert --db2shp -d &lt;DATABASE&gt;
+ 6. Import an srtm file and write elevation data to nodes of an existing database
+  scenario-convert --srtm2db -i &lt;SRTMFILE&gt; -d &lt;DATABASE&gt;
+
+-------------------------------------------------------------------------------
+
+ CONFIGURATION FILE:
+ -h,--help                                 Prints this help screen.
+
+ -c,--config-file &lt;PATH&gt;                   Optional, refers to a configuration file which contains all parameters in
+                                           JSON format.
+    --osm2db                               Converts a OpenStreetMap file to a new scenario database.
+    --sumo2db                              Imports a SUMO Network/Routefile. Be aware that you may have to re-export an
+                                           imported network.
+    --srtm2db                              Imports an SRTM file and writes elevation data to nodes.
+    --db2sumo                              Exports the network to SUMO node and edge files.
+    --db2shp                               Exports the database into Shapefile format.
+    --db2mosaic                            Creates directory structure for a MOSAIC scenario based on the database
+                                           contents.
+    --osm2sumo                             Combination of osm2db and db2sumo.
+    --osm2mosaic                           Combination of osm2db and db2vsimrti.
+    --update                               Updates the database to the current scheme.
+
+ -d,--database &lt;PATH&gt;                      The path to the database.
+                                           For import: File to import to. If not given, a new file is created.
+                                           For export: File to load from.
+                                           For update operations: file to update.
+ -i,--input &lt;PATH&gt;                         Defines an input file to use in an import. File type depends on the import
+                                           operation (OSM File/Database file/SUMO net file/SUMO route file).
+ -s,--sumo-prefix &lt;STRING&gt;                 Prefix for the generated sumo files  (uses database name when not defined).
+ -f,--force                                Force overwrite of existing files instead of incrementing file names.
+ -m,--mapping-file &lt;PATH&gt;                  Uses the given mapping configuration to export existing vehicleTypes and
+                                           vehicles data to *.rou.xml (with --export-routes).
+    --import-lat &lt;DOUBLE&gt;                  Center latitude of imported region to project coordinates.
+    --import-lon &lt;DOUBLE&gt;                  Center longitude of imported region to project coordinates.
+    --import-zone &lt;STRING&gt;                 UTM zone of location for projecting coords in default format (e.g. 32n).
+
+ -g,--generate-routes                      Generates route(s) from one point to another. The begin and end for the route
+                                           must be known (see below options).
+    --route-begin-lat &lt;DOUBLE&gt;             Latitude of the starting point, needs --route-begin-lon as well.
+    --route-begin-lon &lt;DOUBLE&gt;             Longitude of the starting point, needs --route-begin-lat as well.
+    --route-begin-latlon &lt;DOUBLE,DOUBLE&gt;   [latitude],[longitude] of the starting point.
+    --route-begin-node-id &lt;STRING&gt;         OSM node id of the starting point (use instead of lat/lon).
+    --route-end-lat &lt;DOUBLE&gt;               Latitude of the starting point, needs --route-end-lon as well.
+    --route-end-lon &lt;DOUBLE&gt;               Longitude of the starting point, needs --route-end-lat as well.
+    --route-end-latlon &lt;DOUBLE,DOUBLE&gt;     [latitude],[longitude] of the ending point.
+    --route-end-node-id &lt;STRING&gt;           OSM node id of the ending point (use instead of lat/lon).
+    --route-matrix &lt;STRING,STRING,...&gt;     Calculates all possible routes starting and ending at the given nodes, given
+                                           as comma-separated list (e.g. 12345,87123,89123)
+    --number-of-routes &lt;INTEGER&gt;           Defines the number of alternative routes to be calculated (default=1).
+
+    --skip-osm-filter                      Skips automatic filtering of the OSM file (only with osm2xxx).
+ -b,--import-buildings                     Write OSM building information in database.
+    --ignore-turn-restrictions             Ignore all defined turn restrictions on OSM import.
+    --disable-graph-cleanup                Turns off the removal of unconnected parts from the main traffic network
+                                           graph . Since several components of VSimRTI require one main graph without
+                                           disconnected ways and nodes, this option should be used only if the cleanup
+                                           procedure is faulty.
+    --skip-netconvert                      Skips automatic starting sumo netconvert for creating netfile (only with xxx2sumo).
+    --skip-traffic-lights-export           Skips automatic exporting traffic light information for nodes (only with xxx2sumo).
+    --osm-speeds-file &lt;PATH&gt;               Define a property file which contains speed information which are used to set
+                                           the speed for OSM ways without a max speed tag (only with osm2xxx).
+    --osm-speeds-overwrite                 If set to true , the maxspeed tags of ways are ignored and replaced by either
+                                           default values , or by speed information defined via the --osm-speeds-file
+                                           option (only with osm2xxx).
+
+-------------------------------------------------------------------------------
+
+ File placement:
+   When a database file is given with -d every created file will be placed by
+   the database file in the given path. When the file is passed without a path
+   the path used to execute the command from will be used as a base.
+   For import operations where -d is omited all files will be placed alongside
+   the input file given.
+
+   When a file to be created already exist the filename will be postfixed with
+   an incrementing number. This behaviour can be overwritten
+
+-------------------------------------------------------------------------------
+
+</code></pre>
 <h3 id="configuration-files-for-scenario-convert">Configuration-files for scenario-convert</h3>
 <p>Scenario-convert offers a way to safe your conversion-parameters in a <code>JSON</code> configuration file using
 the option <code>-c</code> or <code>--config-file</code>.<br>
 The following listing shows how to save the options used in the example above:</p>
-<p><a href="/docs/building_scenarios/files/steglitz_config.json" download>steglitzConfigFile</a></p>
+<pre><code>{
+  &#34;operatingMode&#34;: &#34;osm2mosaic&#34;,
+  &#34;inputFile&#34;: &#34;steglitz.osm&#34;,
+  &#34;executeOsmosis&#34;: true,
+  &#34;generateRoutes&#34;: true,
+  &#34;routeBeginLatLon&#34;: &#34;52.457616,13.318392&#34;,
+  &#34;routeEndLatLon&#34;: &#34;52.454774,13.333554&#34;,
+  &#34;numberOfRoutes&#34;: 3
+}
+</code></pre>
 <h3 id="speed-files">Speed-files</h3>
 <p>Below you can find a properties file which can be used during the import of OSM data
 in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the
 option <code>--osm-speeds-file &lt;FILE&gt;</code>. In the speed properties file, for each way type a speed value can
 be defined, according to the OSM 
 <a href="http://wiki.openstreetmap.org/wiki/Key:highway" target="_blank" rel="noopener"><code>highway</code></a> key.</p>
-<p><a href="/docs/building_scenarios/files/car-speeds.properties" download>speed-properties</a></p>
+<pre><code># the unit the speed values are defined in [kmh, ms]
+speed.unit = kmh
+
+# the default speed for all way types which are not defined here
+speed.default = 30
+        
+# autobahn
+highway.motorway = 130
+highway.motorway_link = 70
+
+# bundesstrasse (germany)
+highway.trunk = 70
+highway.trunk_link = 65
+
+# linking bigger town
+highway.primary = 65
+highway.primary_link = 60
+
+# linking towns &#43; villages
+highway.secondary = 60
+highway.secondary_link = 50
+
+#streets without middle line separation
+highway.tertiary = 50
+highway.tertiary_link = 40
+highway.residential = 30
+
+#special roads
+highway.living_street = 5
+highway.service = 20
+
+# unclassified roads
+highway.unclassified = 30
+highway.road = 20
+
+# forest tracks
+highway.track 15
+</code></pre>
 
           </div>
 
diff --git a/docs/develop_applications/communication/index.html b/docs/develop_applications/communication/index.html
index 020ee20..ccdcf4a 100644
--- a/docs/develop_applications/communication/index.html
+++ b/docs/develop_applications/communication/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/develop_applications/communication/">
-  <meta property="og:title" content="Communication in Applications | Eclipse MOSAIC">
+  <meta property="og:title" content="Communication in Applications | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT&#43;&#43;, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Communication in Applications | Eclipse MOSAIC</title>
+  <title>Communication in Applications | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -783,7 +787,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/develop_applications/event_scheduler/index.html b/docs/develop_applications/event_scheduler/index.html
index 9b483a8..6e05ff1 100644
--- a/docs/develop_applications/event_scheduler/index.html
+++ b/docs/develop_applications/event_scheduler/index.html
@@ -240,9 +240,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/">
-  <meta property="og:title" content="Event Scheduling | Eclipse MOSAIC">
+  <meta property="og:title" content="Event Scheduling | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.
 Event The class Event contains the information that is necessary to process an event."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -269,7 +269,7 @@
 
 
 
-  <title>Event Scheduling | Eclipse MOSAIC</title>
+  <title>Event Scheduling | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -325,7 +325,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -338,7 +338,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -738,6 +738,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -775,7 +779,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/develop_applications/index.html b/docs/develop_applications/index.html
index 23f3f8d..a8e2f1f 100644
--- a/docs/develop_applications/index.html
+++ b/docs/develop_applications/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/develop_applications/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/develop_applications/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/develop_applications/">
-  <meta property="og:title" content="Basics in Application Development | Eclipse MOSAIC">
+  <meta property="og:title" content="Basics in Application Development | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Basics in Application Development | Eclipse MOSAIC</title>
+  <title>Basics in Application Development | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -771,7 +775,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -788,8 +827,7 @@
 <h2 id="developing-applications">Developing Applications</h2>
 <p>Developing custom applications in Eclipse MOSAIC is rather easy. The best way to learn it is by looking at the
 source code of actual applications. For this purpose, we provide the source code of all tutorial applications
-and further examples. You can find the source code on the 
-<a href="https://www.dcaiti.tu-berlin.de/research/simulation/download/" target="_blank" rel="noopener">DCAITI website</a>.</p>
+and further examples.</p>
 <p>For an easy understanding of the application API, the following questions and their answers should
 help:</p>
 <ul>
diff --git a/docs/develop_applications/index.xml b/docs/develop_applications/index.xml
index 3ba0c9a..c5c8892 100644
--- a/docs/develop_applications/index.xml
+++ b/docs/develop_applications/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Basics in Application Development | Eclipse MOSAIC</title>
+    <title>Basics in Application Development | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/develop_applications/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/develop_applications/index.xml" rel="self" type="application/rss+xml" />
     <description>Basics in Application Development</description>
diff --git a/docs/develop_applications/road_traffic/index.html b/docs/develop_applications/road_traffic/index.html
index 600ae3f..531279c 100644
--- a/docs/develop_applications/road_traffic/index.html
+++ b/docs/develop_applications/road_traffic/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/">
-  <meta property="og:title" content="Scenario Database | Eclipse MOSAIC">
+  <meta property="og:title" content="Scenario Database | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Scenario Database | Eclipse MOSAIC</title>
+  <title>Scenario Database | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -767,7 +771,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/extending_mosaic/application_ambassador_details/index.html b/docs/extending_mosaic/application_ambassador_details/index.html
index 336fc40..04bb123 100644
--- a/docs/extending_mosaic/application_ambassador_details/index.html
+++ b/docs/extending_mosaic/application_ambassador_details/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/">
-  <meta property="og:title" content="Application Ambassador - Implementation Details | Eclipse MOSAIC">
+  <meta property="og:title" content="Application Ambassador - Implementation Details | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Application Ambassador - Implementation Details | Eclipse MOSAIC</title>
+  <title>Application Ambassador - Implementation Details | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -767,7 +771,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/extending_mosaic/delay_models/index.html b/docs/extending_mosaic/delay_models/index.html
index fcb91ff..e6d0939 100644
--- a/docs/extending_mosaic/delay_models/index.html
+++ b/docs/extending_mosaic/delay_models/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/">
-  <meta property="og:title" content="Delay Models | Eclipse MOSAIC">
+  <meta property="og:title" content="Delay Models | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Delay Models | Eclipse MOSAIC</title>
+  <title>Delay Models | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -768,7 +772,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -846,6 +885,12 @@
   </div>
   
   
+  
+  <div class="post-nav-item col-6">
+    <div class="meta-nav">Next</div>
+    <a href="/mosaic/docs/extending_mosaic/java_docs/" rel="prev">Java Docs</a>
+  </div>
+  
 </div>
 
           </div>
diff --git a/docs/extending_mosaic/index.html b/docs/extending_mosaic/index.html
index f2b3c03..24f044a 100644
--- a/docs/extending_mosaic/index.html
+++ b/docs/extending_mosaic/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/extending_mosaic/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/extending_mosaic/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/">
-  <meta property="og:title" content="Core Concepts | Eclipse MOSAIC">
+  <meta property="og:title" content="Core Concepts | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Core Concepts | Eclipse MOSAIC</title>
+  <title>Core Concepts | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -772,7 +776,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/extending_mosaic/index.xml b/docs/extending_mosaic/index.xml
index 3da85e2..e74768d 100644
--- a/docs/extending_mosaic/index.xml
+++ b/docs/extending_mosaic/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Core Concepts | Eclipse MOSAIC</title>
+    <title>Core Concepts | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/extending_mosaic/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/extending_mosaic/index.xml" rel="self" type="application/rss+xml" />
     <description>Core Concepts</description>
@@ -90,8 +90,8 @@
 function correctly. If you have read up on High Level Architecture before
 (have a look 
 &lt;a href=&#34;https://en.wikipedia.org/wiki/High_Level_Architecture&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and at the linked references) you might notice, that the
-previous flowchart does not completely reflect the proposed mechanisms. For instance, the &lt;code&gt;isTimeRegulating&lt;/code&gt; flag has no effect, when the &lt;code&gt;isTimeConstrained&lt;/code&gt;
-flag is not set.&lt;br&gt;
+previous flowchart does not completely reflect the proposed mechanisms. For instance, the &lt;code&gt;isTimeRegulating&lt;/code&gt; flag has no effect, when the
+&lt;code&gt;isTimeConstrained&lt;/code&gt; flag is not set.&lt;br&gt;
 So at some points you might stumble upon federates, which have their &lt;code&gt;isTimeConstrained&lt;/code&gt; and &lt;code&gt;isTimeRegulating&lt;/code&gt; flags set to different
 values as you would expect. An example of this is the &lt;code&gt;ApplicationAmbassador&lt;/code&gt;. One would expect it to be time-constrained as well as
 time-regulating. This isn&amp;rsquo;t the case though, because the &lt;code&gt;ApplicationAmbassador&lt;/code&gt; implements its own time- and event-management,
@@ -142,24 +142,29 @@
 &lt;h3 id=&#34;integration-into-eclipse-mosaic&#34;&gt;Integration into Eclipse MOSAIC&lt;/h3&gt;
 &lt;p&gt;The first step to integrate a new component is the extension of the configuration file &lt;code&gt;etc/defaults.xml&lt;/code&gt;.
 An example for a federate configuration can be found in following listing.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;federates&amp;gt;
-    [...]
-    &amp;lt;federate class=&amp;quot;com.dcaiti.vsimrti.fed.omnetpp.ambassador.OmnetppAmbassador&amp;quot;&amp;gt;
-        &amp;lt;id&amp;gt;omnetpp&amp;lt;/id&amp;gt;
-        &amp;lt;deploy&amp;gt;true&amp;lt;/deploy&amp;gt;
-        &amp;lt;start&amp;gt;true&amp;lt;/start&amp;gt;
-        &amp;lt;host&amp;gt;local&amp;lt;/host&amp;gt;
-        &amp;lt;port&amp;gt;4998&amp;lt;/port&amp;gt;
-        &amp;lt;config&amp;gt;omnetpp.ini&amp;lt;/config&amp;gt;
-        &amp;lt;subscriptions&amp;gt;
-            &amp;lt;subscription&amp;gt;VehicleRegistration&amp;lt;/subscription&amp;gt;
-            &amp;lt;subscription&amp;gt;RsuRegistration&amp;lt;/subscription&amp;gt;
-            &amp;lt;subscription&amp;gt;TrafficLightRegistration&amp;lt;/subscription&amp;gt;
-            [...]
-        &amp;lt;/subscriptions&amp;gt;&amp;gt;
-    &amp;lt;/federate&amp;gt;
-    [...]
-&amp;lt;/federates&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
+    ...
+    {
+        &amp;quot;id&amp;quot;: &amp;quot;omnetpp&amp;quot;,
+        &amp;quot;classname&amp;quot;: &amp;quot;org.eclipse.mosaic.fed.omnetpp.ambassador.OmnetppAmbassador&amp;quot;,
+        &amp;quot;configuration&amp;quot;: &amp;quot;omnetpp_config.json&amp;quot;,
+        &amp;quot;configurationDeployPath&amp;quot;: &amp;quot;omnetpp-federate/simulations&amp;quot;,
+        &amp;quot;priority&amp;quot;: 50,
+        &amp;quot;dockerImage&amp;quot;: &amp;quot;&amp;quot;,
+        &amp;quot;host&amp;quot;: &amp;quot;local&amp;quot;,
+        &amp;quot;port&amp;quot;: 4998,
+        &amp;quot;deploy&amp;quot;: true,
+        &amp;quot;start&amp;quot;: true,
+        &amp;quot;subscriptions&amp;quot;: [
+            &amp;quot;VehicleRegistration&amp;quot;,
+            &amp;quot;RsuRegistration&amp;quot;,
+            &amp;quot;TrafficLightRegistration&amp;quot;,
+            ...
+        ],
+        &amp;quot;javaClasspathEntries&amp;quot;: []
+    },
+    ...       
+]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;The following parameters are available:&lt;/p&gt;
 &lt;ul&gt;
@@ -245,7 +250,7 @@
 The &amp;ldquo;Sent by&amp;rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.&lt;/p&gt;
 &lt;h2 id=&#34;mapping&#34;&gt;mapping&lt;/h2&gt;
 &lt;p&gt;All interactions in this package are concerned with adding/registering simulation-units to the simulation.
-While most of the introductions are handled by the &lt;code&gt;Mapping3&lt;/code&gt;- or &lt;code&gt;Application&lt;/code&gt;-ambassador, some of them
+While most of the introductions are handled by the &lt;code&gt;Mapping&lt;/code&gt;- or &lt;code&gt;Application&lt;/code&gt;-ambassador, some of them
 are handled by the ambassadors for the traffic simulators (see 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/lust&#34;&gt;LuST&lt;/a&gt;-scenario).
 In this case the interactions are used to initialize the scenario.&lt;/p&gt;
@@ -261,32 +266,37 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;VehicleRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;br&gt;&lt;code&gt;Application&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;br&gt;&lt;code&gt;Application&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;ChargingStationRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;RsuRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a roadside unit to the simulation.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;TmcRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for.&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
+&lt;/tr&gt;
+&lt;tr&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;ServerRegistration&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a server to the simulation. It holds a list of all applications.&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;TrafficLightRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;TrafficSignRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a traffic sign.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
@@ -314,7 +324,7 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;RoutelessVehicleRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the &lt;code&gt;Application&lt;/code&gt;-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
@@ -505,7 +515,7 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;VehicleTypesInitialization&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;This interaction is required for each simulation.&lt;/strong&gt; It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;VehicleRoutesInitialization&lt;/code&gt;&lt;/td&gt;
@@ -809,7 +819,7 @@
 to other federates. Furthermore, if the ambassador receives a request to change the route of a specific
 vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.&lt;/p&gt;
 &lt;h3 id=&#34;simulation-of-vehicles&#34;&gt;Simulation of Vehicles&lt;/h3&gt;
-&lt;p&gt;For each vehicle which has been defined in the mapping3 configuration, a &lt;code&gt;VehicleRegistration&lt;/code&gt; interaction is sent
+&lt;p&gt;For each vehicle which has been defined in the mapping configuration, a &lt;code&gt;VehicleRegistration&lt;/code&gt; interaction is sent
 to the &lt;code&gt;SumoAmbassador&lt;/code&gt; which adds those vehicles to the simulation via TraCI. Furthermore, vehicle
 data is subscribed which is updated with every simulation step. After each step of the simulation this
 data is bundled into a &lt;code&gt;VehicleInfo&lt;/code&gt; object which is distributed among other ambassadors within the
@@ -1171,7 +1181,7 @@
 oriented models of INETMANET have their focus more on the framing for communication and less on
 the real content. That means that content is often modeled with dummy payloads where only the length is
 of interest. In contrast, V2X applications which are simulated in the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator.md&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt;.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt;.
 Rely on the correct transmission of contents. Hence, the modules &lt;code&gt;VSimRTIReliableApp&lt;/code&gt; and &lt;code&gt;VSimRTIUnreliableApp&lt;/code&gt;
 are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager
 to send new messages to lower layers and forward messages themselves back to the ScenarioManager
@@ -1818,5 +1828,15 @@
 </description>
     </item>
     
+    <item>
+      <title>Java Docs</title>
+      <link>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</link>
+      <pubDate>Tue, 30 Jun 2020 00:00:00 +0100</pubDate>
+      <guid>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</guid>
+      <description>&lt;!-- Java Docs need to be copied into /public/java_docs. --&gt;
+&lt;iframe src=&#34;https://www.eclipse.org/mosaic/mosaic/java_docs/&#34; style=&#34;width: 100%; height: calc(100vh - 230px);&#34;&gt;&lt;/iframe&gt;
+</description>
+    </item>
+    
   </channel>
 </rss>
diff --git a/docs/extending_mosaic/interactions/index.html b/docs/extending_mosaic/interactions/index.html
index a7d075f..ff1c865 100644
--- a/docs/extending_mosaic/interactions/index.html
+++ b/docs/extending_mosaic/interactions/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/interactions/">
-  <meta property="og:title" content="Interactions in Eclipse MOSAIC | Eclipse MOSAIC">
+  <meta property="og:title" content="Interactions in Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Interactions in Eclipse MOSAIC | Eclipse MOSAIC</title>
+  <title>Interactions in Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -773,7 +777,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -789,7 +828,7 @@
 The &ldquo;Sent by&rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.</p>
 <h2 id="mapping">mapping</h2>
 <p>All interactions in this package are concerned with adding/registering simulation-units to the simulation.
-While most of the introductions are handled by the <code>Mapping3</code>- or <code>Application</code>-ambassador, some of them
+While most of the introductions are handled by the <code>Mapping</code>- or <code>Application</code>-ambassador, some of them
 are handled by the ambassadors for the traffic simulators (see 
 <a href="/tutorials/lust">LuST</a>-scenario).
 In this case the interactions are used to initialize the scenario.</p>
@@ -805,32 +844,37 @@
 <tr>
 <td style="text-align:left"><code>VehicleRegistration</code></td>
 <td style="text-align:left">This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator.</td>
-<td style="text-align:left"><code>Mapping3</code><br><code>Application</code></td>
+<td style="text-align:left"><code>Mapping</code><br><code>Application</code></td>
 </tr>
 <tr>
 <td style="text-align:left"><code>ChargingStationRegistration</code></td>
 <td style="text-align:left">This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s.</td>
-<td style="text-align:left"><code>Mapping3</code></td>
+<td style="text-align:left"><code>Mapping</code></td>
 </tr>
 <tr>
 <td style="text-align:left"><code>RsuRegistration</code></td>
 <td style="text-align:left">This interaction indicates the introduction of a roadside unit to the simulation.</td>
-<td style="text-align:left"><code>Mapping3</code></td>
+<td style="text-align:left"><code>Mapping</code></td>
 </tr>
 <tr>
 <td style="text-align:left"><code>TmcRegistration</code></td>
 <td style="text-align:left">This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for.</td>
+<td style="text-align:left"><code>Mapping</code></td>
+</tr>
+<tr>
+<td style="text-align:left"><code>ServerRegistration</code></td>
+<td style="text-align:left">This interaction indicates the introduction of a server to the simulation. It holds a list of all applications.</td>
 <td style="text-align:left"><code>Mapping3</code></td>
 </tr>
 <tr>
 <td style="text-align:left"><code>TrafficLightRegistration</code></td>
 <td style="text-align:left">This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system.</td>
-<td style="text-align:left"><code>Mapping3</code></td>
+<td style="text-align:left"><code>Mapping</code></td>
 </tr>
 <tr>
 <td style="text-align:left"><code>TrafficSignRegistration</code></td>
 <td style="text-align:left">This interaction indicates the introduction of a traffic sign.</td>
-<td style="text-align:left"><code>Mapping3</code></td>
+<td style="text-align:left"><code>Mapping</code></td>
 </tr>
 </tbody>
 </table>
@@ -858,7 +902,7 @@
 <tr>
 <td style="text-align:left"><code>RoutelessVehicleRegistration</code></td>
 <td style="text-align:left">This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the <code>Application</code>-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards.</td>
-<td style="text-align:left"><code>Mapping3</code></td>
+<td style="text-align:left"><code>Mapping</code></td>
 </tr>
 </tbody>
 </table>
@@ -1049,7 +1093,7 @@
 <tr>
 <td style="text-align:left"><code>VehicleTypesInitialization</code></td>
 <td style="text-align:left"><strong>This interaction is required for each simulation.</strong> It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier.</td>
-<td style="text-align:left"><code>Mapping3</code></td>
+<td style="text-align:left"><code>Mapping</code></td>
 </tr>
 <tr>
 <td style="text-align:left"><code>VehicleRoutesInitialization</code></td>
diff --git a/docs/extending_mosaic/java_docs/index.html b/docs/extending_mosaic/java_docs/index.html
new file mode 100644
index 0000000..3b59456
--- /dev/null
+++ b/docs/extending_mosaic/java_docs/index.html
@@ -0,0 +1,1274 @@
+<!DOCTYPE html><html lang="en-us" >
+
+
+
+
+  
+
+
+<head>
+
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="generator" content="Source Themes Academic 4.8.0">
+
+  
+
+  
+  
+  
+  
+  
+    
+    
+    
+  
+  
+
+  <meta name="author" content="Fraunhofer FOKUS">
+
+  
+  
+  
+    
+  
+  <meta name="description" content=" ">
+
+  
+  <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/">
+
+  
+
+
+  
+  
+  
+  <meta name="theme-color" content="#68145C">
+  
+
+  
+  
+  
+  <script src="/mosaic/js/mathjax-config.js"></script>
+  
+
+  
+  
+  
+  
+    
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.8.6/css/academicons.min.css" integrity="sha512-MCWBwPSput2UWNwyznVFLbD2iUc1e5VsdD1zahsWVzkDSUzyHhMZ4kCS3wgYSRm0mU+glwD/Q9lSJrDPwbUL2A==" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-1/css/all.min.css" integrity="sha512-ZYg+hQvLlM0W9C3P6vTpes5LmJ66G2EsroxDNzwD6qiulckldb29eD9I672HL2X+LH5nRhY1sQqZLJGB+aUUPg==" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha512-H9jrZiiopUdsLpg94A333EfumgUBpO9MdbxStdeITo+KEIMaNfHNvwyjjDJb+ERPaRS6DpyRlKbvPUasNItRyw==" crossorigin="anonymous">
+
+    
+    
+    
+      
+    
+    
+      
+      
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-light">
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-dark" disabled>
+      
+    
+
+    
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="anonymous">
+    
+
+    
+
+    
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js" integrity="sha512-TmDwFLhg3UA4ZG0Eb4MIyT1O1Mb+Oww5kFG0uHqXsdbyZz9DcvYQhKpGgNkamAI6h2lGGZq2X8ftOJvF/XjTUg==" crossorigin="anonymous" async></script>
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+    
+      
+
+      
+      
+
+      
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.1.0/es5/tex-chtml.min.js" integrity="sha512-uwL1UtpYdWra2iqJlAW8Ts0s9Os6IxWLDJDF/BnWdhDmT7DEMFba3GPsFwmV3QiTNcUyl2GB5vsgycB/MOvo9g==" crossorigin="anonymous" async></script>
+      
+    
+      
+
+      
+      
+
+      
+    
+
+  
+
+  
+  
+  
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,400i,700,700i%7CRoboto+Mono&display=swap">
+  
+
+  
+  
+  
+  
+  <link rel="stylesheet" href="/mosaic/css/academic.css">
+
+  
+
+
+
+
+  
+
+
+  
+  
+
+  
+
+  <link rel="manifest" href="/mosaic/index.webmanifest">
+  <link rel="icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_32x32_fill_lanczos_center_2.png">
+  <link rel="apple-touch-icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_192x192_fill_lanczos_center_2.png">
+
+  <link rel="canonical" href="https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/">
+
+  
+  
+  
+  
+  
+  
+  
+    
+    
+  
+  
+  <meta property="twitter:card" content="summary">
+  
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
+  <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/">
+  <meta property="og:title" content="Java Docs | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
+  <meta property="og:description" content=" "><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
+  <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
+  
+    
+      <meta property="article:published_time" content="2020-06-30T00:00:00&#43;01:00">
+    
+    <meta property="article:modified_time" content="2020-06-30T00:00:00&#43;01:00">
+  
+
+  
+
+
+
+  
+
+
+  
+
+
+  
+
+
+
+
+
+  <title>Java Docs | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
+
+</head>
+
+<body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-extending_mosaic page-java_docs ">
+
+  <aside class="search-results" id="search">
+  <div class="container">
+    <section class="search-header">
+
+      <div class="row no-gutters justify-content-between mb-3">
+        <div class="col-10 col-md-3">
+          <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg)"></div>
+        </div>
+        <div class="col-2 col-md-4 col-search-close">
+          <a class="js-search" href="#"><i class="fas fa-times-circle text-muted" aria-hidden="true"></i></a>
+        </div>
+      </div>
+
+      <div id="search-box">
+        
+        <input name="q" id="search-query" placeholder="Search..." autocapitalize="off"
+        autocomplete="off" autocorrect="off" spellcheck="false" type="search">
+        
+      </div>
+
+    </section>
+    <section class="section-search-results">
+
+      <div id="search-hits">
+        
+      </div>
+
+    </section>
+  </div>
+</aside>
+
+
+  
+
+
+
+
+
+
+  
+
+
+
+  
+
+
+<nav class="navbar navbar-expand-lg navbar-light compensate-for-scrollbar" id="navbar-main">
+  <div class="container">
+
+    <div class="d-none d-lg-inline-flex">
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
+    </div>
+
+
+    
+    <button type="button" class="navbar-toggler" data-toggle="collapse"
+            data-target="#navbar-content" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
+    <span><i class="fas fa-bars"></i></span>
+    </button>
+    
+
+    
+    <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
+    </div>
+    
+
+    
+    
+    <div class="navbar-collapse main-menu-item collapse justify-content-start" id="navbar-content">
+
+      
+      <ul class="navbar-nav d-md-inline-flex">
+        
+
+        
+
+        
+        
+        
+          
+        
+
+        
+        
+        
+        
+        
+        
+
+        <li class="nav-item">
+          <a class="nav-link " href="/mosaic/about"><span>About</span></a>
+        </li>
+
+        
+        
+
+        
+
+        
+        
+        
+          
+        
+
+        
+        
+        
+        
+        
+        
+
+        <li class="nav-item">
+          <a class="nav-link " href="/mosaic/news"><span>News</span></a>
+        </li>
+
+        
+        
+
+        
+
+        
+        
+        
+          
+        
+
+        
+        
+        
+        
+        
+        
+
+        <li class="nav-item">
+          <a class="nav-link  active" href="/mosaic/docs"><span>Documentation</span></a>
+        </li>
+
+        
+        
+
+        
+
+        
+        
+        
+          
+        
+
+        
+        
+        
+        
+        
+        
+
+        <li class="nav-item">
+          <a class="nav-link " href="/mosaic/tutorials"><span>Tutorials</span></a>
+        </li>
+
+        
+        
+
+        
+
+        
+        
+        
+          
+        
+
+        
+        
+        
+        
+        
+        
+
+        <li class="nav-item">
+          <a class="nav-link " href="/mosaic/download"><span>Download</span></a>
+        </li>
+
+        
+        
+
+        
+
+        
+        
+        
+          
+        
+
+        
+        
+        
+        
+        
+        
+
+        <li class="nav-item">
+          <a class="nav-link " href="/mosaic/community"><span>Community</span></a>
+        </li>
+
+        
+        
+
+      
+
+        
+      </ul>
+    </div>
+
+    <ul class="nav-icons navbar-nav flex-row ml-auto d-flex pl-md-2">
+      
+      <li class="nav-item">
+        <a class="nav-link js-search" href="#" aria-label="Search"><i class="fas fa-search" aria-hidden="true"></i></a>
+      </li>
+      
+
+      
+
+      
+      <li class="nav-item ">
+        <a href="https://github.com/eclipse/mosaic" target="blank">
+          <i class="fab fa-github" aria-hidden="true"></i>
+        </a>
+      </li>
+      
+
+      
+
+    </ul>
+
+  </div>
+</nav>
+
+
+  
+
+<div class="docs container">
+  <div class="row flex-xl-nowrap">
+    <div class="docs-sidebar col-12 col-md-3 col-xl-3">
+      
+
+
+
+
+
+  
+    
+  
+
+
+
+
+<form class="docs-search d-flex align-items-center">
+  <button class="btn docs-toggle d-md-none p-0 mr-3" type="button" data-toggle="collapse" data-target="#docs-nav" aria-controls="docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
+    <span><i class="fas fa-bars"></i></span>
+  </button>
+
+  
+  <input name="q" type="search" class="form-control" placeholder="Search..." autocomplete="off">
+  
+</form>
+
+<nav class="collapse docs-links" id="docs-nav">
+  
+
+  
+  
+  
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/getting_started">Getting Started</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/getting_started/">Download</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/getting_started/run_mosaic/">Run Eclipse MOSAIC</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/run_simulations">Run Simulations</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/run_simulations/">Run a single simulation</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/visualization">Visualization</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/visualization/">WebSocket Visualizer</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/visualization/itef/">ITEF</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/visualization/phabmap/">PHABMap</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/simulators">Simulators</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/simulators/">Overview</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/application_simulator/">Application Simulator</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/traffic_simulator_sumo/">Traffic - Eclipse SUMO</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/network_simulator_omnetpp/">Network - OMNeT&#43;&#43;</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/network_simulator_ns3/">Network - ns-3</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/network_simulator_sns/">Network - SNS</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/network_simulator_cell/">Network - Cell</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/environment_simulator/">Environment Simulator</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/simulators/battery_simulator/">Battery Simulator</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/building_scenarios">Building Scenarios</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/building_scenarios/">Simulation Scenarios</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/building_scenarios/scenario_convert/">Scenario Convert</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/building_scenarios/scenario_configuration/">Additional Scenario Configuration</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/develop_applications">Create Applications</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/develop_applications/">Basics</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/develop_applications/communication/">V2X Communication</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/develop_applications/event_scheduler/">Event Scheduling</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/develop_applications/road_traffic/">Scenario Database</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/extending_mosaic">Extending Eclipse MOSAIC</a>
+    <ul class="nav docs-sidenav">
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/">Core Concepts</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/simulator_coupling/">Simulator Coupling</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/interactions/">Interactions</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/application_ambassador_details/">Application Ambassador</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/sumo_ambassador_details/">Sumo Ambassador</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/omnetpp_details/">OMNeT&#43;&#43; Federate</a>
+      </li>
+      
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
+      </li>
+      
+      <li class="active">
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
+    </ul>
+    
+
+  </div>
+  
+  
+</nav>
+
+    </div>
+
+    
+
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
+
+      <article class="article">
+
+        <div class="docs-article-container">
+          <h1>Java Docs</h1>
+
+          <div class="article-style">
+            <!-- Java Docs need to be copied into /public/java_docs. -->
+<iframe src="/mosaic/java_docs/" style="width: 100%; height: calc(100vh - 230px);"></iframe>
+
+          </div>
+
+          
+
+
+
+          
+          <div class="article-widget">
+            
+<div class="post-nav row col-12">
+  
+  
+  
+  <div class="post-nav-item col-6">
+    <div class="meta-nav">Previous</div>
+    <a href="/mosaic/docs/extending_mosaic/delay_models/" rel="next">Delay Models</a>
+  </div>
+  
+  
+</div>
+
+          </div>
+          
+        </div>
+
+        
+          
+
+          
+
+          
+
+          
+  
+  
+
+
+        
+
+
+        <footer class="site-footer">
+  <div class="row">
+  
+    
+      <div class="col-sm-4 mb-3 mb-md-0">
+        <b>Eclipse MOSAIC</b>
+        
+          <ul>
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/download/" title="Download Eclipse MOSAIC" >
+                    
+                      Download Eclipse MOSAIC
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/docs" title="Documentation" >
+                    
+                      Documentation
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/tutorials" title="Tutorials" >
+                    
+                      Tutorials
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/community/#projects" title="Projects" >
+                    
+                      Projects
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/publications" title="Publications" >
+                    
+                      Publications
+                    
+                  </a>
+                </li>
+              
+            
+          </ul>
+        
+      </div>
+    
+  
+    
+      <div class="col-sm-4 mb-3 mb-md-0">
+        <b>Community</b>
+        
+          <ul>
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/community" title="Eclipse MOSAIC Community" >
+                    
+                      Eclipse MOSAIC Community
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/contribution" title="How to contribute" >
+                    
+                      How to contribute
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                    
+                  
+                
+                <li>
+                  <a href="https://github.com/eclipse/mosaic" title="Github"  target="_blank" rel="noopener">
+                    
+                      Github
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                
+                <li>
+                  <a href="/mosaic/get_in_contact" title="Contact &amp; Mailing list" >
+                    
+                      Contact & Mailing list
+                    
+                  </a>
+                </li>
+              
+            
+          </ul>
+        
+      </div>
+    
+  
+    
+      <div class="col-sm-4 mb-3 mb-md-0">
+        <b>Eclipse Foundation</b>
+        
+          <ul>
+            
+              
+                
+                
+                  
+                    
+                  
+                
+                <li>
+                  <a href="https://www.eclipse.org/" title="About Eclipse Foundation"  target="_blank" rel="noopener">
+                    
+                      About Eclipse Foundation
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                    
+                  
+                
+                <li>
+                  <a href="https://www.eclipse.org/legal/privacy.php" title="Privacy Policy"  target="_blank" rel="noopener">
+                    
+                      Privacy Policy
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                    
+                  
+                
+                <li>
+                  <a href="https://www.eclipse.org/legal/termsofuse.php" title="Website terms of use"  target="_blank" rel="noopener">
+                    
+                      Website terms of use
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                    
+                  
+                
+                <li>
+                  <a href="https://www.eclipse.org/legal/copyright.php" title="Copyright"  target="_blank" rel="noopener">
+                    
+                      Copyright
+                    
+                  </a>
+                </li>
+              
+            
+              
+                
+                
+                  
+                    
+                  
+                
+                <li>
+                  <a href="https://www.eclipse.org/legal" title="Legal"  target="_blank" rel="noopener">
+                    
+                      Legal
+                    
+                  </a>
+                </li>
+              
+            
+          </ul>
+        
+      </div>
+    
+  
+
+
+
+
+
+
+
+
+
+
+
+  </div>
+  <div class="row justify-content-center mt-3 position-relative">
+    <p class="powered-by text-center font-italic mb-0 pb-0">
+      Powered by the
+      <a href="https://sourcethemes.com/academic/" target="_blank" rel="noopener">Academic theme</a> for
+      <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a>.
+      <br>
+      Header image &#169; fanjianhua/ iStock
+    </p>
+    
+  </div>
+</footer>
+
+
+
+      </article>
+    </main>
+  </div>
+</div>
+
+
+      
+
+    
+    
+    
+      <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha384-vk5WoKIaW/vJyUAd9n/wmopsmNhiy+L2Z+SBxGYnUkunIxVxAv/UtMOhba/xskxh" crossorigin="anonymous"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.4/imagesloaded.pkgd.min.js" integrity="sha512-S5PZ9GxJZO16tT9r3WJp/Safn31eu8uWrzglMahDT4dsmgqWonRY9grk3j+3tfuPr9WJNsfooOR7Gi7HL5W2jw==" crossorigin="anonymous"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.6/isotope.pkgd.min.js" integrity="sha512-Zq2BOxyhvnRFXu0+WE6ojpZLOU2jdnqbrM1hmVdGzyeCa1DgM3X5Q4A/Is9xA1IkbUeDd7755dNNI/PzSf2Pew==" crossorigin="anonymous"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js" integrity="sha512-uURl+ZXMBrF4AwGaWmEetzrd+J5/8NRkWAvJx5sbPSSuOb0bZLqf+tOzniObO00BjHa/dD7gub9oCGMLPQHtQA==" crossorigin="anonymous"></script>
+
+      
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.4.8/mermaid.min.js" integrity="sha512-1tS1YUns336Mtxl+vkaLcADPwE1CPNVy3WEf7nrI7DGMMb6/FAVBgL2IzAWVBkB6vVuK94s2zVoiXcw1QZ9S1g==" crossorigin="anonymous" title="mermaid"></script>
+      
+
+      
+        
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha512-1LdB3V708w6G4QRl7NsVdTr7MDibyRXr9stQZ+EGjEE0ZPMZkA//ir7kCWmFyxdAJNIRXdR/ZeJmCV0boyiCXw==" crossorigin="anonymous"></script>
+        
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/java.min.js"></script>
+        
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/json.min.js"></script>
+        
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/xml.min.js"></script>
+        
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/shell.min.js"></script>
+        
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/dos.min.js"></script>
+        
+      
+
+    
+
+    
+    
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="anonymous"></script>
+    
+
+    
+    
+    <script>const code_highlighting = true;</script>
+    
+
+    
+    
+    <script>const isSiteThemeDark = false;</script>
+    
+
+    
+    
+    
+    
+    
+    
+    <script>
+      const search_config = {"indexURI":"/mosaic/index.json","minLength":1,"threshold":0.3};
+      const i18n = {"no_results":"No results found","placeholder":"Search...","results":"results found"};
+      const content_type = {
+        'post': "Posts",
+        'project': "Projects",
+        'publication' : "Publications",
+        'talk' : "Talks"
+        };
+    </script>
+    
+
+    
+    
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.1/anchor.min.js" integrity="sha512-aZotBPy6dqn8yVaLJwSrkJ+QxuxV695A4dgodAMvTU5JyNi5mhrr+LeaD3GSS+lx1SMFKNs0tu5ZMJEgNZQP2Q==" crossorigin="anonymous"></script>
+    <script>
+      anchors.add();
+    </script>
+    
+
+    
+    
+    <script id="search-hit-fuse-template" type="text/x-template">
+      <div class="search-hit" id="summary-{{key}}">
+      <div class="search-hit-content">
+        <div class="search-hit-name">
+          <a href="{{relpermalink}}">{{title}}</a>
+          <div class="article-metadata search-hit-type">{{type}}</div>
+          <p class="search-hit-description">{{snippet}}</p>
+        </div>
+      </div>
+      </div>
+    </script>
+    
+
+    
+    
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.1/fuse.min.js" integrity="sha512-o38bmzBGX+hD3JHWUFCDA09btWaqrNmoJ3RXLlrysA7PP01Kgs4UlE4MhelE1v5dJR3+cxlR4qQlotsW7jKsnw==" crossorigin="anonymous"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js" integrity="sha512-mhbv5DqBMgrWL+32MmsDOt/OAvqr/cHimk6B8y/bx/xS88MVkYGPiVv2ixKVrkywF2qHplNRUvFsAHUdxZ3Krg==" crossorigin="anonymous"></script>
+    
+
+    
+    
+
+    
+    
+
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+      
+    
+    
+    
+    
+    <script type="application/javascript" src="/mosaic/js/academic.min.1824b36a85a484362f116f1e24481eb9.js"></script>
+
+    
+
+<script type="application/javascript" src="/mosaic/js/mosaic-wg-cards.js"></script>
+
+
+
+
+
+  
+  
+
+  
+<div id="modal" class="modal fade" role="dialog">
+  <div class="modal-dialog">
+    <div class="modal-content">
+      <div class="modal-header">
+        <h5 class="modal-title">Cite</h5>
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+          <span aria-hidden="true">&times;</span>
+        </button>
+      </div>
+      <div class="modal-body">
+        <pre><code class="tex hljs"></code></pre>
+      </div>
+      <div class="modal-footer">
+        <a class="btn btn-outline-primary my-1 js-copy-cite" href="#" target="_blank">
+          <i class="fas fa-copy"></i> Copy
+        </a>
+        <a class="btn btn-outline-primary my-1 js-download-cite" href="#" target="_blank">
+          <i class="fas fa-download"></i> Download
+        </a>
+        <div id="modal-error"></div>
+      </div>
+    </div>
+  </div>
+</div>
+
+</body>
+</html>
diff --git a/docs/extending_mosaic/omnetpp_details/index.html b/docs/extending_mosaic/omnetpp_details/index.html
index 579929c..c404e2b 100644
--- a/docs/extending_mosaic/omnetpp_details/index.html
+++ b/docs/extending_mosaic/omnetpp_details/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/">
-  <meta property="og:title" content="OMNeT&#43;&#43; Federate Implementation | Eclipse MOSAIC">
+  <meta property="og:title" content="OMNeT&#43;&#43; Federate Implementation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The OMNeT&#43;&#43; Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>OMNeT&#43;&#43; Federate Implementation | Eclipse MOSAIC</title>
+  <title>OMNeT&#43;&#43; Federate Implementation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -770,7 +774,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -866,7 +905,7 @@
 oriented models of INETMANET have their focus more on the framing for communication and less on
 the real content. That means that content is often modeled with dummy payloads where only the length is
 of interest. In contrast, V2X applications which are simulated in the 
-<a href="/docs/simulators/application_simulator.md">Eclipse MOSAIC Application Simulator</a>.
+<a href="/docs/simulators/application_simulator/">Eclipse MOSAIC Application Simulator</a>.
 Rely on the correct transmission of contents. Hence, the modules <code>VSimRTIReliableApp</code> and <code>VSimRTIUnreliableApp</code>
 are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager
 to send new messages to lower layers and forward messages themselves back to the ScenarioManager
diff --git a/docs/extending_mosaic/simulator_coupling/index.html b/docs/extending_mosaic/simulator_coupling/index.html
index 044d409..bea88a0 100644
--- a/docs/extending_mosaic/simulator_coupling/index.html
+++ b/docs/extending_mosaic/simulator_coupling/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/simulator_coupling/">
-  <meta property="og:title" content="Simulator Coupling | Eclipse MOSAIC">
+  <meta property="og:title" content="Simulator Coupling | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Simulator Coupling | Eclipse MOSAIC</title>
+  <title>Simulator Coupling | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -769,7 +773,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -850,8 +889,8 @@
 function correctly. If you have read up on High Level Architecture before
 (have a look 
 <a href="https://en.wikipedia.org/wiki/High_Level_Architecture" target="_blank" rel="noopener">here</a> and at the linked references) you might notice, that the
-previous flowchart does not completely reflect the proposed mechanisms. For instance, the <code>isTimeRegulating</code> flag has no effect, when the <code>isTimeConstrained</code>
-flag is not set.<br>
+previous flowchart does not completely reflect the proposed mechanisms. For instance, the <code>isTimeRegulating</code> flag has no effect, when the
+<code>isTimeConstrained</code> flag is not set.<br>
 So at some points you might stumble upon federates, which have their <code>isTimeConstrained</code> and <code>isTimeRegulating</code> flags set to different
 values as you would expect. An example of this is the <code>ApplicationAmbassador</code>. One would expect it to be time-constrained as well as
 time-regulating. This isn&rsquo;t the case though, because the <code>ApplicationAmbassador</code> implements its own time- and event-management,
@@ -902,24 +941,29 @@
 <h3 id="integration-into-eclipse-mosaic">Integration into Eclipse MOSAIC</h3>
 <p>The first step to integrate a new component is the extension of the configuration file <code>etc/defaults.xml</code>.
 An example for a federate configuration can be found in following listing.</p>
-<pre><code class="language-xml">&lt;federates&gt;
-    [...]
-    &lt;federate class=&quot;com.dcaiti.vsimrti.fed.omnetpp.ambassador.OmnetppAmbassador&quot;&gt;
-        &lt;id&gt;omnetpp&lt;/id&gt;
-        &lt;deploy&gt;true&lt;/deploy&gt;
-        &lt;start&gt;true&lt;/start&gt;
-        &lt;host&gt;local&lt;/host&gt;
-        &lt;port&gt;4998&lt;/port&gt;
-        &lt;config&gt;omnetpp.ini&lt;/config&gt;
-        &lt;subscriptions&gt;
-            &lt;subscription&gt;VehicleRegistration&lt;/subscription&gt;
-            &lt;subscription&gt;RsuRegistration&lt;/subscription&gt;
-            &lt;subscription&gt;TrafficLightRegistration&lt;/subscription&gt;
-            [...]
-        &lt;/subscriptions&gt;&gt;
-    &lt;/federate&gt;
-    [...]
-&lt;/federates&gt;
+<pre><code class="language-json">&quot;federates&quot;: [
+    ...
+    {
+        &quot;id&quot;: &quot;omnetpp&quot;,
+        &quot;classname&quot;: &quot;org.eclipse.mosaic.fed.omnetpp.ambassador.OmnetppAmbassador&quot;,
+        &quot;configuration&quot;: &quot;omnetpp_config.json&quot;,
+        &quot;configurationDeployPath&quot;: &quot;omnetpp-federate/simulations&quot;,
+        &quot;priority&quot;: 50,
+        &quot;dockerImage&quot;: &quot;&quot;,
+        &quot;host&quot;: &quot;local&quot;,
+        &quot;port&quot;: 4998,
+        &quot;deploy&quot;: true,
+        &quot;start&quot;: true,
+        &quot;subscriptions&quot;: [
+            &quot;VehicleRegistration&quot;,
+            &quot;RsuRegistration&quot;,
+            &quot;TrafficLightRegistration&quot;,
+            ...
+        ],
+        &quot;javaClasspathEntries&quot;: []
+    },
+    ...       
+]
 </code></pre>
 <p>The following parameters are available:</p>
 <ul>
diff --git a/docs/extending_mosaic/sumo_ambassador_details/index.html b/docs/extending_mosaic/sumo_ambassador_details/index.html
index a17f8e2..8bface8 100644
--- a/docs/extending_mosaic/sumo_ambassador_details/index.html
+++ b/docs/extending_mosaic/sumo_ambassador_details/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/sumo_ambassador_details/">
-  <meta property="og:title" content="Sumo Ambassador Implementation | Eclipse MOSAIC">
+  <meta property="og:title" content="Sumo Ambassador Implementation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Sumo Ambassador Implementation | Eclipse MOSAIC</title>
+  <title>Sumo Ambassador Implementation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -770,7 +774,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -830,7 +869,7 @@
 to other federates. Furthermore, if the ambassador receives a request to change the route of a specific
 vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.</p>
 <h3 id="simulation-of-vehicles">Simulation of Vehicles</h3>
-<p>For each vehicle which has been defined in the mapping3 configuration, a <code>VehicleRegistration</code> interaction is sent
+<p>For each vehicle which has been defined in the mapping configuration, a <code>VehicleRegistration</code> interaction is sent
 to the <code>SumoAmbassador</code> which adds those vehicles to the simulation via TraCI. Furthermore, vehicle
 data is subscribed which is updated with every simulation step. After each step of the simulation this
 data is bundled into a <code>VehicleInfo</code> object which is distributed among other ambassadors within the
diff --git a/docs/getting_started/index.html b/docs/getting_started/index.html
index 16c35b7..2265a9b 100644
--- a/docs/getting_started/index.html
+++ b/docs/getting_started/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/getting_started/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/getting_started/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/getting_started/">
-  <meta property="og:title" content="Download Eclipse MOSAIC | Eclipse MOSAIC">
+  <meta property="og:title" content="Download Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Download Eclipse MOSAIC | Eclipse MOSAIC</title>
+  <title>Download Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -765,7 +769,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/getting_started/index.xml b/docs/getting_started/index.xml
index e6500bb..93418fd 100644
--- a/docs/getting_started/index.xml
+++ b/docs/getting_started/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Download Eclipse MOSAIC | Eclipse MOSAIC</title>
+    <title>Download Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/getting_started/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/getting_started/index.xml" rel="self" type="application/rss+xml" />
     <description>Download Eclipse MOSAIC</description>
diff --git a/docs/getting_started/run_mosaic/index.html b/docs/getting_started/run_mosaic/index.html
index bd75d3a..3d67922 100644
--- a/docs/getting_started/run_mosaic/index.html
+++ b/docs/getting_started/run_mosaic/index.html
@@ -240,9 +240,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/getting_started/run_mosaic/">
-  <meta property="og:title" content="Run a simulation with Eclipse MOSAIC | Eclipse MOSAIC">
+  <meta property="og:title" content="Run a simulation with Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Start a simulation with Eclipse MOSAIC using the command line:
 ./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -269,7 +269,7 @@
 
 
 
-  <title>Run a simulation with Eclipse MOSAIC | Eclipse MOSAIC</title>
+  <title>Run a simulation with Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -325,7 +325,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -338,7 +338,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -738,6 +738,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -764,7 +768,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/index.html b/docs/index.html
index e02d8d9..f922726 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/">
-  <meta property="og:title" content="Eclipse MOSAIC Documentation | Eclipse MOSAIC">
+  <meta property="og:title" content="Eclipse MOSAIC Documentation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Eclipse MOSAIC Documentation | Eclipse MOSAIC</title>
+  <title>Eclipse MOSAIC Documentation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -729,6 +729,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -741,7 +745,42 @@
 
     
 
-    <main class="col-12 col-md-9 col-xl-9 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/index.xml b/docs/index.xml
index d4ab0d1..72aca60 100644
--- a/docs/index.xml
+++ b/docs/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Eclipse MOSAIC Documentation | Eclipse MOSAIC</title>
+    <title>Eclipse MOSAIC Documentation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/index.xml" rel="self" type="application/rss+xml" />
     <description>Eclipse MOSAIC Documentation</description>
diff --git a/docs/run_simulations/index.html b/docs/run_simulations/index.html
index f828f6f..bbc8a6a 100644
--- a/docs/run_simulations/index.html
+++ b/docs/run_simulations/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/run_simulations/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/run_simulations/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/run_simulations/">
-  <meta property="og:title" content="Run a single simulation | Eclipse MOSAIC">
+  <meta property="og:title" content="Run a single simulation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Run a single simulation | Eclipse MOSAIC</title>
+  <title>Run a single simulation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -767,7 +771,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/run_simulations/index.xml b/docs/run_simulations/index.xml
index 712db21..65c7e3e 100644
--- a/docs/run_simulations/index.xml
+++ b/docs/run_simulations/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Run a single simulation | Eclipse MOSAIC</title>
+    <title>Run a single simulation | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/run_simulations/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/run_simulations/index.xml" rel="self" type="application/rss+xml" />
     <description>Run a single simulation</description>
diff --git a/docs/run_simulations/results/index.html b/docs/run_simulations/results/index.html
index eb67a46..6b57880 100644
--- a/docs/run_simulations/results/index.html
+++ b/docs/run_simulations/results/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/run_simulations/results/">
-  <meta property="og:title" content="Simulation Results | Eclipse MOSAIC">
+  <meta property="og:title" content="Simulation Results | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder &lt;mosaic-root&gt;/logs/log-&lt;timestamp&gt;."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Simulation Results | Eclipse MOSAIC</title>
+  <title>Simulation Results | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -766,7 +770,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/run_simulations/simulation_set/index.html b/docs/run_simulations/simulation_set/index.html
index c3a91d7..7b43d72 100644
--- a/docs/run_simulations/simulation_set/index.html
+++ b/docs/run_simulations/simulation_set/index.html
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/">
-  <meta property="og:title" content="Run a Simulation Set | Eclipse MOSAIC">
+  <meta property="og:title" content="Run a Simulation Set | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="This feature is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
@@ -271,7 +271,7 @@
 
 
 
-  <title>Run a Simulation Set | Eclipse MOSAIC</title>
+  <title>Run a Simulation Set | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -327,7 +327,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -340,7 +340,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -740,6 +740,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -752,7 +756,42 @@
 
     
 
-    <main class="col-12 col-md-9 col-xl-9 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/application_simulator/index.html b/docs/simulators/application_simulator/index.html
index 7857e12..83b0b67 100644
--- a/docs/simulators/application_simulator/index.html
+++ b/docs/simulators/application_simulator/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/">
-  <meta property="og:title" content="Application Simulator | Eclipse MOSAIC">
+  <meta property="og:title" content="Application Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and &ldquo;map&rdquo; applications to them."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Application Simulator | Eclipse MOSAIC</title>
+  <title>Application Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -775,7 +779,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -783,7 +822,8 @@
           <h1>Application Simulator</h1>
 
           <div class="article-style">
-            <p>This section presents the architecture and the main features of the <strong>Application Simulator</strong> as well as the related <strong>Mapping</strong> Ambassador, which is used to configure individual simulation entities (or simulation units) and &ldquo;map&rdquo; applications to them.</p>
+            <p>This section presents the architecture and the main features of the <strong>Application Simulator</strong> as well as the related <strong>Mapping</strong> Ambassador,
+which is used to configure individual simulation entities (or simulation units) and &ldquo;map&rdquo; applications to them.</p>
 <h2 id="eclipse-mosaic-application-simulator">Eclipse MOSAIC Application Simulator</h2>
 <p>The <strong>Application Simulator</strong> plays an important role in the simulation of vehicles and its functions. It provides the capability
 to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others)
@@ -802,9 +842,11 @@
 <h3 id="installation">Installation</h3>
 <p>This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.</p>
 <h3 id="overview">Overview</h3>
-<p>Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application 
-<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-mapping">Mapping</a>). The applications for the units are basically compiled JAVA classes, which <strong>extend</strong> the abstract class
-<code>AbstractApplication</code>. Those classes have to be deployed as pre-compiled JAR files into the <code>application</code> folder of the simulated scenario.</p>
+<p>Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application
+
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-mapping">Mapping</a>). The applications for the units are basically
+compiled JAVA classes, which <strong>extend</strong> the abstract class <code>AbstractApplication</code>. Those classes have to be deployed as pre-compiled
+JAR files into the <code>application</code> folder of the simulated scenario.</p>
 
 
 
@@ -840,8 +882,12 @@
 </figure>
 
 <h4 id="application-operating-system">Application Operating System</h4>
-<p>The <code>AbstractApplication</code> possesses a unit-specific <code>OperatingSystem</code>, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like <code>slowDown()</code> for vehicles).</p>
-<p>As the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules <code>NavigationModule</code> (Navigation + Routing for vehicles) / <code>RoutingModule</code> (Routing-only for static units) and <code>AdHocModule</code> / <code>CellModule</code> with APIs dedicated to their purpose.</p>
+<p>The <code>AbstractApplication</code> possesses a unit-specific <code>OperatingSystem</code>, which allows interactions with the simulated parameters.
+The operating system provides access to information like the current time or position of the units and could control unit-specific
+actions (like <code>slowDown()</code> for vehicles).</p>
+<p>As the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and
+sending messages) are more complex, they are separated into the specific modules <code>NavigationModule</code> (Navigation + Routing for
+vehicles) / <code>RoutingModule</code> (Routing-only for static units) and <code>AdHocModule</code> / <code>CellModule</code> with APIs dedicated to their purpose.</p>
 <p>The following table lists all modules a unit&rsquo;s operating system could provide.</p>
 <table>
 <thead>
@@ -869,10 +915,16 @@
 </tr>
 </tbody>
 </table>
-<p><strong>Note:</strong> The presented communication modules <code>AdHocModule</code>, <code>CellModule</code> are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the <code>CommunicationApplication</code>.</p>
+<blockquote>
+<p><strong>Note:</strong> The presented communication modules <code>AdHocModule</code>, <code>CellModule</code> are used for the sending part of a transmission. The message
+reception is realized by Application Interfaces provided by the <code>CommunicationApplication</code>.</p>
+</blockquote>
 <h4 id="application-interfaces">Application Interfaces</h4>
-<p>Application interfaces handle call-backs to incoming events via their methods, like <code>onVehicleUpdated()</code>, called by the application simulator.
-The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the &ldquo;Provides&rdquo; column. The elementary interface (<code>Application</code>) provides the methods <code>onStartup()</code>, <code>onShutdown()</code>. Implementation details are given in 
+<p>Application interfaces handle call-backs to incoming events via their methods, like <code>onVehicleUpdated()</code>, called by the
+application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as
+important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the
+&ldquo;Provides&rdquo; column. The elementary interface (<code>Application</code>) provides the methods <code>onStartup()</code>, <code>onShutdown()</code>. Implementation details
+are given in 
 <a href="https://www.eclipse.org/mosaic/docs/develop_applications/">Development of applications</a>.</p>
 <table>
 <thead>
@@ -957,7 +1009,8 @@
 in custom configuration files (e.g. <code>ETSIApplication.json</code> or <code>ETSIApplication_veh_0.json</code>).</p>
 <hr>
 <h2 id="eclipse-mosaic-mapping">Eclipse MOSAIC Mapping</h2>
-<p>Closely related to the Application Simulator, the <strong>Mapping</strong> Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:</p>
+<p>Closely related to the Application Simulator, the <strong>Mapping</strong> Ambassador is used for the initial choreography of a simulation.
+It defines two major aspects for the simulation units:</p>
 <ol>
 <li>number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator)</li>
 <li>specific application(s) to be &ldquo;mapped&rdquo; on the simulation units and simulated in the Application Simulation</li>
@@ -967,12 +1020,14 @@
 <p>The Mapping configuration is divided into different parts:</p>
 <ul>
 <li>Pre Definitions of <code>prototypes</code> and <code>deviations</code></li>
-<li>Entity Definitions of <code>vehicles</code>, <code>rsus</code>, <code>tls</code> and <code>tmcs</code></li>
+<li>Entity Definitions of <code>vehicles</code>, <code>rsus</code>, <code>tls</code> <code>servers</code> and <code>tmcs</code></li>
 <li>Advanced Vehicle Definitions (including route generation) in <code>matrixMappers</code></li>
 <li>Common Definitions in <code>config</code></li>
 </ul>
 <h4 id="prototypes">Prototypes</h4>
-<p><code>prototypes</code> define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.</p>
+<p><code>prototypes</code> define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the
+definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in
+shorter Mapping configurations.</p>
 <pre><code class="language-json">&quot;prototypes&quot;: [
     {
         &quot;name&quot;: &quot;CamVehicle&quot;,
@@ -984,8 +1039,8 @@
     }
 ]
 </code></pre>
-<p>Prototypes can be created for all types of entities. Next to the list of <code>applications</code> which is available for all types of entities, vehicle types
-provide various other parameters to be adjusted.</p>
+<p>Prototypes can be created for all types of entities. Next to the list of <code>applications</code> which is available for all types of entities,
+vehicle types provide various other parameters to be adjusted.</p>
 <table>
 <thead>
 <tr>
@@ -1057,8 +1112,9 @@
 </tr>
 </tbody>
 </table>
-<p>For the majority of the parameters above (see column &ldquo;Deviation&rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype
-will be loaded with a random value within this distribution. To achieve this, a separate <code>deviations</code> attribute must be added to the type:</p>
+<p>For the majority of the parameters above (see column &ldquo;Deviation&rdquo;), a normal distribution can be created. In that case, each individual
+vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate <code>deviations</code>
+attribute must be added to the type:</p>
 <pre><code class="language-json">&quot;prototypes&quot;: [
         {
             &quot;name&quot;: &quot;Car&quot;,
@@ -1071,17 +1127,23 @@
         }
     ]
 </code></pre>
-<p>According to the config above, the basic Parameter value conforms to the expected value and the given value in the <code>deviations</code> attribute conforms to the $\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\sigma$.</p>
+<p>According to the config above, the basic parameter value conforms to the expected value, and the given value in the <code>deviations</code>
+attribute conforms to the $\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will
+be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\sigma$.</p>
 <h4 id="entities">Entities</h4>
 <p><strong>Vehicles</strong></p>
-<p>The <code>vehicles</code>-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.</p>
+<p>The <code>vehicles</code>-section is the centerpiece of the Mapping configuration. It defines the departures (times and number),
+routes, and types of the vehicles.</p>
 <p>Each spawner in this list generates a traffic stream of vehicles on a certain <code>route</code>. The vehicles stream begins at <code>startingTime</code> and
-generates vehicles until <code>maxNumberVehicles</code> is reached. The time between two consecutively vehicles is implicitly given by the <code>targetFlow</code> property, which
-defines how many vehicles per hour are going to spawned.</p>
-<p>Each vehicle spawner must refer to at least one vehicle type (<code>types</code>). A vehicle type must either refer to a type from the <code>prototypes</code> section by using its <code>name</code>,
-or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the <code>types</code> attribute,
-<code>weight</code>s can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, invididual vehicle types are assumed to be distributed equally.
-Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.</p>
+generates vehicles until <code>maxNumberVehicles</code> is reached. The time between two consecutively vehicles is implicitly given by the
+<code>targetFlow</code> property, which defines how many vehicles per hour are going to be spawned.</p>
+<p>Each vehicle spawner must refer to at least one vehicle type (<code>types</code>). A vehicle type must either refer to a type from the <code>prototypes</code>
+section by using its <code>name</code>, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type
+is referenced in the <code>types</code> attribute, <code>weight</code>s can be used to specify the ratios to choose between them when loading an individual
+vehicle. If no weights are defined, individual vehicle types are assumed to be distributed equally.</p>
+<blockquote>
+<p>Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.</p>
+</blockquote>
 <pre><code class="language-json">&quot;vehicles&quot;: [
     {
         &quot;startingTime&quot;: 5.0,
@@ -1128,7 +1190,9 @@
 </li>
 </ul>
 <p><strong>Road Side Units</strong></p>
-<p>The <code>rsus</code>-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (<code>lat</code>, <code>lon</code> coordinates). Referring to <code>prototype</code> definitions with simply specifying its name in the <code>name</code> property will automatically fill in relevant properties of the RSU.</p>
+<p>The <code>rsus</code>-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a
+defined position (<code>lat</code>, <code>lon</code> coordinates). Referring to <code>prototype</code> definitions with simply specifying its name in the <code>name</code>
+property will automatically fill in relevant properties of the RSU.</p>
 <pre><code class="language-json">&quot;rsus&quot;: [
     {
         &quot;lat&quot;: 52.65027,
@@ -1139,8 +1203,14 @@
 ]
 </code></pre>
 <p><strong>Traffic Lights</strong></p>
-<p>In the <code>trafficLights</code>-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The <code>tlGroupId</code>-property allows mapping of applications to the traffic light groups, referring them by Id.</p>
-<p>Alternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.</p>
+<p>In the <code>trafficLights</code>-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of
+traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and
+their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS).
+The <code>tlGroupId</code>-property allows mapping of applications to the traffic light groups, referring them by Id.</p>
+<p>Alternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the
+scenario. (Note: The weights do not have to add up to 100 or 1. Consequently, all traffic lights will be mapped using the specified
+prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you
+have to define one traffic light without any applications and add a weight to it.</p>
 <pre><code class="language-json">&quot;trafficLights&quot;: [
     {
         &quot;tlGroupId&quot;: &quot;26704448&quot;,
@@ -1152,15 +1222,35 @@
     }
 ]
 </code></pre>
-<p>For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to 
+<p>For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to
+
 <a href="/docs/building_scenarios/scenarios/#traffic-lights">Simulation Scenarios - Traffic Lights</a>.</p>
+<p><strong>Servers</strong></p>
+<p>The <code>servers</code>-array can be used to specify server units, which can be used to communicate with other units via the cell module.
+Capacity configurations for servers should be done when enabling the <code>CellModule</code>. Delay and transmission models are configured
+in the <code>network.json</code> of the cell module (see 
+<a href="/docs/simulators/network_simulator_cell">here</a>).</p>
+<blockquote>
+<p>Note: The <code>group</code> parameter in the mapping configuration has to match with the id in the network configuration in order to
+properly function.</p>
+</blockquote>
+<pre><code class="language-json">&quot;servers&quot;: [
+    {
+        &quot;name&quot;: &quot;MyServer&quot;,
+        &quot;group&quot;: &quot;TestServers&quot;,
+        &quot;applications&quot;: [ &quot;ServerApp1&quot;, &quot;ServerApp2&quot; ]
+    }
+]
+</code></pre>
 <p><strong>Traffic Management Centers</strong></p>
 <p>The <code>tmc</code>-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC
 provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties
-from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).</p>
+from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).
+Additionally, TMCs are an extension of Servers and can be configured in the same way that servers are</p>
 <pre><code class="language-json">&quot;tmcs&quot;: [
     {
         &quot;name&quot;: &quot;HighwayManagement&quot;,
+        &quot;group&quot;: &quot;TestTmcServers&quot;,
         &quot;applications&quot;: [ &quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()&quot; ],
         &quot;inductionLoops&quot;: [ &quot;detector_0&quot;, &quot;detector_1&quot;, &quot;detector_2&quot; ],
         &quot;laneAreaDetectors&quot;: [ ]
@@ -1168,11 +1258,14 @@
 ]
 </code></pre>
 <blockquote>
-<p>All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.</p>
+<p>All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles
+in every simulation run with regard to the given ratios at each point in time the simulation).
+The Stochastic Mapping results in a random order of mapped units.</p>
 </blockquote>
 <h4 id="use-type-distributions-in-complex-traffic-scenarios">Use Type Distributions in Complex Traffic Scenarios</h4>
 <p>In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them
-again and again, you can use <code>typeDistributions</code>. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.</p>
+again and again, you can use <code>typeDistributions</code>. By doing so, it is very simple to adjust the list of types and weights at only one
+place in the configuration file.</p>
 <p>Instead of defining an equal list of types and weights for each single vehicle spawner, like in this example:</p>
 <pre><code class="language-json">&quot;vehicles&quot;: [
     {
@@ -1222,8 +1315,11 @@
 ]
 </code></pre>
 <h4 id="advanced-vehicle-spawners-with-route-generation">Advanced vehicle spawners with route generation</h4>
-<p>It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the <code>matrixMappers</code>-list. Each MatrixMapper consists of a list of <code>points</code>, the vehicle-<code>types</code> to be used and the actual flow-values (<code>odValues</code>) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.</p>
-<p>The MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.</p>
+<p>It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the <code>matrixMappers</code>-list.
+Each MatrixMapper consists of a list of <code>points</code>, the vehicle-<code>types</code> to be used and the actual flow-values (<code>odValues</code>) between each
+of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.</p>
+<p>The MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between
+each of the points.</p>
 <pre><code class="language-json">
 &quot;matrixMappers&quot;: [
     {
@@ -1315,7 +1411,8 @@
 </table>
 <h3 id="unit-identifiers">Unit Identifiers</h3>
 <p>Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify
-a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.</p>
+a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files
+which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.</p>
 <table>
 <thead>
 <tr>
diff --git a/docs/simulators/battery_simulator/index.html b/docs/simulators/battery_simulator/index.html
index 12cdb4f..6ca2658 100644
--- a/docs/simulators/battery_simulator/index.html
+++ b/docs/simulators/battery_simulator/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/">
-  <meta property="og:title" content="MOSAIC Battery Simulator | Eclipse MOSAIC">
+  <meta property="og:title" content="MOSAIC Battery Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>MOSAIC Battery Simulator | Eclipse MOSAIC</title>
+  <title>MOSAIC Battery Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -771,7 +775,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/environment_simulator/index.html b/docs/simulators/environment_simulator/index.html
index 7e564ce..1872a6f 100644
--- a/docs/simulators/environment_simulator/index.html
+++ b/docs/simulators/environment_simulator/index.html
@@ -240,9 +240,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/">
-  <meta property="og:title" content="Environment Simulator | Eclipse MOSAIC">
+  <meta property="og:title" content="Environment Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/&lt;scenarioName&gt;/environment/environment_config.json
 └─ &lt;scenario_name&gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -269,7 +269,7 @@
 
 
 
-  <title>Environment Simulator | Eclipse MOSAIC</title>
+  <title>Environment Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -325,7 +325,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -338,7 +338,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -738,6 +738,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -769,7 +773,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/index.html b/docs/simulators/index.html
index 2066a0b..19ae67b 100644
--- a/docs/simulators/index.html
+++ b/docs/simulators/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/simulators/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/simulators/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/">
-  <meta property="og:title" content="Overview | Eclipse MOSAIC">
+  <meta property="og:title" content="Overview | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Overview | Eclipse MOSAIC</title>
+  <title>Overview | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -745,7 +749,42 @@
 
     
 
-    <main class="col-12 col-md-9 col-xl-9 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/index.xml b/docs/simulators/index.xml
index c8b5961..ad10c53 100644
--- a/docs/simulators/index.xml
+++ b/docs/simulators/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Overview | Eclipse MOSAIC</title>
+    <title>Overview | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/simulators/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/simulators/index.xml" rel="self" type="application/rss+xml" />
     <description>Overview</description>
@@ -17,7 +17,8 @@
       <link>https://www.eclipse.org/mosaic/docs/simulators/application_simulator/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/simulators/application_simulator/</guid>
-      <description>&lt;p&gt;This section presents the architecture and the main features of the &lt;strong&gt;Application Simulator&lt;/strong&gt; as well as the related &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador, which is used to configure individual simulation entities (or simulation units) and &amp;ldquo;map&amp;rdquo; applications to them.&lt;/p&gt;
+      <description>&lt;p&gt;This section presents the architecture and the main features of the &lt;strong&gt;Application Simulator&lt;/strong&gt; as well as the related &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador,
+which is used to configure individual simulation entities (or simulation units) and &amp;ldquo;map&amp;rdquo; applications to them.&lt;/p&gt;
 &lt;h2 id=&#34;eclipse-mosaic-application-simulator&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/h2&gt;
 &lt;p&gt;The &lt;strong&gt;Application Simulator&lt;/strong&gt; plays an important role in the simulation of vehicles and its functions. It provides the capability
 to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others)
@@ -36,9 +37,11 @@
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
 &lt;p&gt;This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.&lt;/p&gt;
 &lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
-&lt;p&gt;Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-mapping&#34;&gt;Mapping&lt;/a&gt;). The applications for the units are basically compiled JAVA classes, which &lt;strong&gt;extend&lt;/strong&gt; the abstract class
-&lt;code&gt;AbstractApplication&lt;/code&gt;. Those classes have to be deployed as pre-compiled JAR files into the &lt;code&gt;application&lt;/code&gt; folder of the simulated scenario.&lt;/p&gt;
+&lt;p&gt;Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application
+
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-mapping&#34;&gt;Mapping&lt;/a&gt;). The applications for the units are basically
+compiled JAVA classes, which &lt;strong&gt;extend&lt;/strong&gt; the abstract class &lt;code&gt;AbstractApplication&lt;/code&gt;. Those classes have to be deployed as pre-compiled
+JAR files into the &lt;code&gt;application&lt;/code&gt; folder of the simulated scenario.&lt;/p&gt;
 
 
 
@@ -74,8 +77,12 @@
 &lt;/figure&gt;
 
 &lt;h4 id=&#34;application-operating-system&#34;&gt;Application Operating System&lt;/h4&gt;
-&lt;p&gt;The &lt;code&gt;AbstractApplication&lt;/code&gt; possesses a unit-specific &lt;code&gt;OperatingSystem&lt;/code&gt;, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like &lt;code&gt;slowDown()&lt;/code&gt; for vehicles).&lt;/p&gt;
-&lt;p&gt;As the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules &lt;code&gt;NavigationModule&lt;/code&gt; (Navigation + Routing for vehicles) / &lt;code&gt;RoutingModule&lt;/code&gt; (Routing-only for static units) and &lt;code&gt;AdHocModule&lt;/code&gt; / &lt;code&gt;CellModule&lt;/code&gt; with APIs dedicated to their purpose.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;AbstractApplication&lt;/code&gt; possesses a unit-specific &lt;code&gt;OperatingSystem&lt;/code&gt;, which allows interactions with the simulated parameters.
+The operating system provides access to information like the current time or position of the units and could control unit-specific
+actions (like &lt;code&gt;slowDown()&lt;/code&gt; for vehicles).&lt;/p&gt;
+&lt;p&gt;As the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and
+sending messages) are more complex, they are separated into the specific modules &lt;code&gt;NavigationModule&lt;/code&gt; (Navigation + Routing for
+vehicles) / &lt;code&gt;RoutingModule&lt;/code&gt; (Routing-only for static units) and &lt;code&gt;AdHocModule&lt;/code&gt; / &lt;code&gt;CellModule&lt;/code&gt; with APIs dedicated to their purpose.&lt;/p&gt;
 &lt;p&gt;The following table lists all modules a unit&amp;rsquo;s operating system could provide.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -103,10 +110,16 @@
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The presented communication modules &lt;code&gt;AdHocModule&lt;/code&gt;, &lt;code&gt;CellModule&lt;/code&gt; are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the &lt;code&gt;CommunicationApplication&lt;/code&gt;.&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The presented communication modules &lt;code&gt;AdHocModule&lt;/code&gt;, &lt;code&gt;CellModule&lt;/code&gt; are used for the sending part of a transmission. The message
+reception is realized by Application Interfaces provided by the &lt;code&gt;CommunicationApplication&lt;/code&gt;.&lt;/p&gt;
+&lt;/blockquote&gt;
 &lt;h4 id=&#34;application-interfaces&#34;&gt;Application Interfaces&lt;/h4&gt;
-&lt;p&gt;Application interfaces handle call-backs to incoming events via their methods, like &lt;code&gt;onVehicleUpdated()&lt;/code&gt;, called by the application simulator.
-The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the &amp;ldquo;Provides&amp;rdquo; column. The elementary interface (&lt;code&gt;Application&lt;/code&gt;) provides the methods &lt;code&gt;onStartup()&lt;/code&gt;, &lt;code&gt;onShutdown()&lt;/code&gt;. Implementation details are given in 
+&lt;p&gt;Application interfaces handle call-backs to incoming events via their methods, like &lt;code&gt;onVehicleUpdated()&lt;/code&gt;, called by the
+application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as
+important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the
+&amp;ldquo;Provides&amp;rdquo; column. The elementary interface (&lt;code&gt;Application&lt;/code&gt;) provides the methods &lt;code&gt;onStartup()&lt;/code&gt;, &lt;code&gt;onShutdown()&lt;/code&gt;. Implementation details
+are given in 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/&#34;&gt;Development of applications&lt;/a&gt;.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -191,7 +204,8 @@
 in custom configuration files (e.g. &lt;code&gt;ETSIApplication.json&lt;/code&gt; or &lt;code&gt;ETSIApplication_veh_0.json&lt;/code&gt;).&lt;/p&gt;
 &lt;hr&gt;
 &lt;h2 id=&#34;eclipse-mosaic-mapping&#34;&gt;Eclipse MOSAIC Mapping&lt;/h2&gt;
-&lt;p&gt;Closely related to the Application Simulator, the &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:&lt;/p&gt;
+&lt;p&gt;Closely related to the Application Simulator, the &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador is used for the initial choreography of a simulation.
+It defines two major aspects for the simulation units:&lt;/p&gt;
 &lt;ol&gt;
 &lt;li&gt;number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator)&lt;/li&gt;
 &lt;li&gt;specific application(s) to be &amp;ldquo;mapped&amp;rdquo; on the simulation units and simulated in the Application Simulation&lt;/li&gt;
@@ -201,12 +215,14 @@
 &lt;p&gt;The Mapping configuration is divided into different parts:&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Pre Definitions of &lt;code&gt;prototypes&lt;/code&gt; and &lt;code&gt;deviations&lt;/code&gt;&lt;/li&gt;
-&lt;li&gt;Entity Definitions of &lt;code&gt;vehicles&lt;/code&gt;, &lt;code&gt;rsus&lt;/code&gt;, &lt;code&gt;tls&lt;/code&gt; and &lt;code&gt;tmcs&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;Entity Definitions of &lt;code&gt;vehicles&lt;/code&gt;, &lt;code&gt;rsus&lt;/code&gt;, &lt;code&gt;tls&lt;/code&gt; &lt;code&gt;servers&lt;/code&gt; and &lt;code&gt;tmcs&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;Advanced Vehicle Definitions (including route generation) in &lt;code&gt;matrixMappers&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;Common Definitions in &lt;code&gt;config&lt;/code&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;h4 id=&#34;prototypes&#34;&gt;Prototypes&lt;/h4&gt;
-&lt;p&gt;&lt;code&gt;prototypes&lt;/code&gt; define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.&lt;/p&gt;
+&lt;p&gt;&lt;code&gt;prototypes&lt;/code&gt; define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the
+definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in
+shorter Mapping configurations.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;prototypes&amp;quot;: [
     {
         &amp;quot;name&amp;quot;: &amp;quot;CamVehicle&amp;quot;,
@@ -218,8 +234,8 @@
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Prototypes can be created for all types of entities. Next to the list of &lt;code&gt;applications&lt;/code&gt; which is available for all types of entities, vehicle types
-provide various other parameters to be adjusted.&lt;/p&gt;
+&lt;p&gt;Prototypes can be created for all types of entities. Next to the list of &lt;code&gt;applications&lt;/code&gt; which is available for all types of entities,
+vehicle types provide various other parameters to be adjusted.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -291,8 +307,9 @@
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;p&gt;For the majority of the parameters above (see column &amp;ldquo;Deviation&amp;rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype
-will be loaded with a random value within this distribution. To achieve this, a separate &lt;code&gt;deviations&lt;/code&gt; attribute must be added to the type:&lt;/p&gt;
+&lt;p&gt;For the majority of the parameters above (see column &amp;ldquo;Deviation&amp;rdquo;), a normal distribution can be created. In that case, each individual
+vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate &lt;code&gt;deviations&lt;/code&gt;
+attribute must be added to the type:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;prototypes&amp;quot;: [
         {
             &amp;quot;name&amp;quot;: &amp;quot;Car&amp;quot;,
@@ -305,17 +322,23 @@
         }
     ]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;According to the config above, the basic Parameter value conforms to the expected value and the given value in the &lt;code&gt;deviations&lt;/code&gt; attribute conforms to the $\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\sigma$.&lt;/p&gt;
+&lt;p&gt;According to the config above, the basic parameter value conforms to the expected value, and the given value in the &lt;code&gt;deviations&lt;/code&gt;
+attribute conforms to the $\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will
+be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\sigma$.&lt;/p&gt;
 &lt;h4 id=&#34;entities&#34;&gt;Entities&lt;/h4&gt;
 &lt;p&gt;&lt;strong&gt;Vehicles&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;The &lt;code&gt;vehicles&lt;/code&gt;-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;vehicles&lt;/code&gt;-section is the centerpiece of the Mapping configuration. It defines the departures (times and number),
+routes, and types of the vehicles.&lt;/p&gt;
 &lt;p&gt;Each spawner in this list generates a traffic stream of vehicles on a certain &lt;code&gt;route&lt;/code&gt;. The vehicles stream begins at &lt;code&gt;startingTime&lt;/code&gt; and
-generates vehicles until &lt;code&gt;maxNumberVehicles&lt;/code&gt; is reached. The time between two consecutively vehicles is implicitly given by the &lt;code&gt;targetFlow&lt;/code&gt; property, which
-defines how many vehicles per hour are going to spawned.&lt;/p&gt;
-&lt;p&gt;Each vehicle spawner must refer to at least one vehicle type (&lt;code&gt;types&lt;/code&gt;). A vehicle type must either refer to a type from the &lt;code&gt;prototypes&lt;/code&gt; section by using its &lt;code&gt;name&lt;/code&gt;,
-or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the &lt;code&gt;types&lt;/code&gt; attribute,
-&lt;code&gt;weight&lt;/code&gt;s can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, invididual vehicle types are assumed to be distributed equally.
-Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.&lt;/p&gt;
+generates vehicles until &lt;code&gt;maxNumberVehicles&lt;/code&gt; is reached. The time between two consecutively vehicles is implicitly given by the
+&lt;code&gt;targetFlow&lt;/code&gt; property, which defines how many vehicles per hour are going to be spawned.&lt;/p&gt;
+&lt;p&gt;Each vehicle spawner must refer to at least one vehicle type (&lt;code&gt;types&lt;/code&gt;). A vehicle type must either refer to a type from the &lt;code&gt;prototypes&lt;/code&gt;
+section by using its &lt;code&gt;name&lt;/code&gt;, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type
+is referenced in the &lt;code&gt;types&lt;/code&gt; attribute, &lt;code&gt;weight&lt;/code&gt;s can be used to specify the ratios to choose between them when loading an individual
+vehicle. If no weights are defined, individual vehicle types are assumed to be distributed equally.&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.&lt;/p&gt;
+&lt;/blockquote&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;vehicles&amp;quot;: [
     {
         &amp;quot;startingTime&amp;quot;: 5.0,
@@ -362,7 +385,9 @@
 &lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;&lt;strong&gt;Road Side Units&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;The &lt;code&gt;rsus&lt;/code&gt;-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (&lt;code&gt;lat&lt;/code&gt;, &lt;code&gt;lon&lt;/code&gt; coordinates). Referring to &lt;code&gt;prototype&lt;/code&gt; definitions with simply specifying its name in the &lt;code&gt;name&lt;/code&gt; property will automatically fill in relevant properties of the RSU.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;rsus&lt;/code&gt;-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a
+defined position (&lt;code&gt;lat&lt;/code&gt;, &lt;code&gt;lon&lt;/code&gt; coordinates). Referring to &lt;code&gt;prototype&lt;/code&gt; definitions with simply specifying its name in the &lt;code&gt;name&lt;/code&gt;
+property will automatically fill in relevant properties of the RSU.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;rsus&amp;quot;: [
     {
         &amp;quot;lat&amp;quot;: 52.65027,
@@ -373,8 +398,14 @@
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;strong&gt;Traffic Lights&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;In the &lt;code&gt;trafficLights&lt;/code&gt;-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The &lt;code&gt;tlGroupId&lt;/code&gt;-property allows mapping of applications to the traffic light groups, referring them by Id.&lt;/p&gt;
-&lt;p&gt;Alternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.&lt;/p&gt;
+&lt;p&gt;In the &lt;code&gt;trafficLights&lt;/code&gt;-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of
+traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and
+their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS).
+The &lt;code&gt;tlGroupId&lt;/code&gt;-property allows mapping of applications to the traffic light groups, referring them by Id.&lt;/p&gt;
+&lt;p&gt;Alternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the
+scenario. (Note: The weights do not have to add up to 100 or 1. Consequently, all traffic lights will be mapped using the specified
+prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you
+have to define one traffic light without any applications and add a weight to it.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;trafficLights&amp;quot;: [
     {
         &amp;quot;tlGroupId&amp;quot;: &amp;quot;26704448&amp;quot;,
@@ -386,15 +417,35 @@
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to 
+&lt;p&gt;For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to
+
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/#traffic-lights&#34;&gt;Simulation Scenarios - Traffic Lights&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Servers&lt;/strong&gt;&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;servers&lt;/code&gt;-array can be used to specify server units, which can be used to communicate with other units via the cell module.
+Capacity configurations for servers should be done when enabling the &lt;code&gt;CellModule&lt;/code&gt;. Delay and transmission models are configured
+in the &lt;code&gt;network.json&lt;/code&gt; of the cell module (see 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;Note: The &lt;code&gt;group&lt;/code&gt; parameter in the mapping configuration has to match with the id in the network configuration in order to
+properly function.&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;servers&amp;quot;: [
+    {
+        &amp;quot;name&amp;quot;: &amp;quot;MyServer&amp;quot;,
+        &amp;quot;group&amp;quot;: &amp;quot;TestServers&amp;quot;,
+        &amp;quot;applications&amp;quot;: [ &amp;quot;ServerApp1&amp;quot;, &amp;quot;ServerApp2&amp;quot; ]
+    }
+]
+&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;strong&gt;Traffic Management Centers&lt;/strong&gt;&lt;/p&gt;
 &lt;p&gt;The &lt;code&gt;tmc&lt;/code&gt;-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC
 provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties
-from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).&lt;/p&gt;
+from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).
+Additionally, TMCs are an extension of Servers and can be configured in the same way that servers are&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;tmcs&amp;quot;: [
     {
         &amp;quot;name&amp;quot;: &amp;quot;HighwayManagement&amp;quot;,
+        &amp;quot;group&amp;quot;: &amp;quot;TestTmcServers&amp;quot;,
         &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()&amp;quot; ],
         &amp;quot;inductionLoops&amp;quot;: [ &amp;quot;detector_0&amp;quot;, &amp;quot;detector_1&amp;quot;, &amp;quot;detector_2&amp;quot; ],
         &amp;quot;laneAreaDetectors&amp;quot;: [ ]
@@ -402,11 +453,14 @@
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
-&lt;p&gt;All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.&lt;/p&gt;
+&lt;p&gt;All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles
+in every simulation run with regard to the given ratios at each point in time the simulation).
+The Stochastic Mapping results in a random order of mapped units.&lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;h4 id=&#34;use-type-distributions-in-complex-traffic-scenarios&#34;&gt;Use Type Distributions in Complex Traffic Scenarios&lt;/h4&gt;
 &lt;p&gt;In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them
-again and again, you can use &lt;code&gt;typeDistributions&lt;/code&gt;. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.&lt;/p&gt;
+again and again, you can use &lt;code&gt;typeDistributions&lt;/code&gt;. By doing so, it is very simple to adjust the list of types and weights at only one
+place in the configuration file.&lt;/p&gt;
 &lt;p&gt;Instead of defining an equal list of types and weights for each single vehicle spawner, like in this example:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;vehicles&amp;quot;: [
     {
@@ -456,8 +510,11 @@
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;h4 id=&#34;advanced-vehicle-spawners-with-route-generation&#34;&gt;Advanced vehicle spawners with route generation&lt;/h4&gt;
-&lt;p&gt;It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the &lt;code&gt;matrixMappers&lt;/code&gt;-list. Each MatrixMapper consists of a list of &lt;code&gt;points&lt;/code&gt;, the vehicle-&lt;code&gt;types&lt;/code&gt; to be used and the actual flow-values (&lt;code&gt;odValues&lt;/code&gt;) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.&lt;/p&gt;
-&lt;p&gt;The MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.&lt;/p&gt;
+&lt;p&gt;It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the &lt;code&gt;matrixMappers&lt;/code&gt;-list.
+Each MatrixMapper consists of a list of &lt;code&gt;points&lt;/code&gt;, the vehicle-&lt;code&gt;types&lt;/code&gt; to be used and the actual flow-values (&lt;code&gt;odValues&lt;/code&gt;) between each
+of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.&lt;/p&gt;
+&lt;p&gt;The MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between
+each of the points.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;
 &amp;quot;matrixMappers&amp;quot;: [
     {
@@ -549,7 +606,8 @@
 &lt;/table&gt;
 &lt;h3 id=&#34;unit-identifiers&#34;&gt;Unit Identifiers&lt;/h3&gt;
 &lt;p&gt;Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify
-a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.&lt;/p&gt;
+a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files
+which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -665,7 +723,8 @@
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
 
 
-&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://sumo.dlr.de/wiki/Downloads&#34; download&gt;Download Eclipse SUMO&lt;/a&gt;
+&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://sumo.dlr.de/wiki/Downloads&#34; title=&#34;Download Eclipse SUMO&#34;&gt;&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;Download Eclipse SUMO&lt;/a&gt;
+
 &lt;p&gt;Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.&lt;/p&gt;
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
@@ -2112,8 +2171,8 @@
 }
 &lt;/code&gt;&lt;/pre&gt;
 &lt;h3 id=&#34;server-configuration&#34;&gt;Server configuration&lt;/h3&gt;
-&lt;p&gt;Newer versions of MOSAIC will be able to support a new type of simulation units, called servers. Right now traffic management
-centers are handled in the same way as servers will be in the future. What differentiates servers from other units is, that
+&lt;p&gt;MOSAIC supports a type of simulation units, called servers. Traffic Management Centers are a specialised type of server.
+What differentiates servers from other units is, that
 they are treated as having no geographical location and instead are located &amp;ldquo;inside the internet.&amp;rdquo;. This concept omits prior shortcoming,
 where one would have to configure RSU&amp;rsquo;s as servers.&lt;br&gt;
 Servers are also configured in the &lt;code&gt;network.json&lt;/code&gt; as follows:&lt;/p&gt;
@@ -2176,6 +2235,12 @@
             &amp;quot;inductionLoops&amp;quot;: [ ],
             &amp;quot;laneAreaDetectors&amp;quot;: [ ]
         }
+    ],    
+    &amp;quot;servers&amp;quot;: [
+        {
+            &amp;quot;group&amp;quot;: &amp;quot;TestServer&amp;quot;,
+            &amp;quot;applications&amp;quot;: [ &amp;quot;TestApplication&amp;quot; ]
+        }
     ],
     ...
 }
@@ -2274,8 +2339,10 @@
 &lt;p&gt;In case of multicast the &lt;code&gt;lossProbability&lt;/code&gt; is used as packet loss rate. The value is factored into the delay calculation.
 In contrast to the unicast, just one transmission attempt is made for multicast.&lt;/p&gt;
 &lt;h3 id=&#34;operation&#34;&gt;Operation&lt;/h3&gt;
-&lt;p&gt;Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.&lt;/p&gt;
-&lt;p&gt;The Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.&lt;/p&gt;
+&lt;p&gt;Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled
+by the Geocaster.&lt;/p&gt;
+&lt;p&gt;The Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the
+Application Simulator.&lt;/p&gt;
 &lt;p&gt;It supports the following addressing and casting schemes.&lt;/p&gt;
 &lt;p&gt;
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-topocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellTopocast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is the normal unicast, where the Geocaster simply resolves
diff --git a/docs/simulators/network_simulator_cell/index.html b/docs/simulators/network_simulator_cell/index.html
index 7a40a81..d8ab999 100644
--- a/docs/simulators/network_simulator_cell/index.html
+++ b/docs/simulators/network_simulator_cell/index.html
@@ -240,9 +240,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/">
-  <meta property="og:title" content="Network Simulator Cell | Eclipse MOSAIC">
+  <meta property="og:title" content="Network Simulator Cell | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:
  The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -269,7 +269,7 @@
 
 
 
-  <title>Network Simulator Cell | Eclipse MOSAIC</title>
+  <title>Network Simulator Cell | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -325,7 +325,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -338,7 +338,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -738,6 +738,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -774,7 +778,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -884,8 +923,8 @@
 }
 </code></pre>
 <h3 id="server-configuration">Server configuration</h3>
-<p>Newer versions of MOSAIC will be able to support a new type of simulation units, called servers. Right now traffic management
-centers are handled in the same way as servers will be in the future. What differentiates servers from other units is, that
+<p>MOSAIC supports a type of simulation units, called servers. Traffic Management Centers are a specialised type of server.
+What differentiates servers from other units is, that
 they are treated as having no geographical location and instead are located &ldquo;inside the internet.&rdquo;. This concept omits prior shortcoming,
 where one would have to configure RSU&rsquo;s as servers.<br>
 Servers are also configured in the <code>network.json</code> as follows:</p>
@@ -948,6 +987,12 @@
             &quot;inductionLoops&quot;: [ ],
             &quot;laneAreaDetectors&quot;: [ ]
         }
+    ],    
+    &quot;servers&quot;: [
+        {
+            &quot;group&quot;: &quot;TestServer&quot;,
+            &quot;applications&quot;: [ &quot;TestApplication&quot; ]
+        }
     ],
     ...
 }
@@ -1046,8 +1091,10 @@
 <p>In case of multicast the <code>lossProbability</code> is used as packet loss rate. The value is factored into the delay calculation.
 In contrast to the unicast, just one transmission attempt is made for multicast.</p>
 <h3 id="operation">Operation</h3>
-<p>Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.</p>
-<p>The Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.</p>
+<p>Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled
+by the Geocaster.</p>
+<p>The Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the
+Application Simulator.</p>
 <p>It supports the following addressing and casting schemes.</p>
 <p>
 <a href="/docs/extending_mosaic/communication/#cellular-topocast"><strong><code>CellTopocast</code></strong></a> is the normal unicast, where the Geocaster simply resolves
diff --git a/docs/simulators/network_simulator_ns3/index.html b/docs/simulators/network_simulator_ns3/index.html
index e881cfa..ac1ddd5 100644
--- a/docs/simulators/network_simulator_ns3/index.html
+++ b/docs/simulators/network_simulator_ns3/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">
-  <meta property="og:title" content="Network Simulator ns-3 | Eclipse MOSAIC">
+  <meta property="og:title" content="Network Simulator ns-3 | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Network Simulator ns-3 | Eclipse MOSAIC</title>
+  <title>Network Simulator ns-3 | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -769,7 +773,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/network_simulator_omnetpp/index.html b/docs/simulators/network_simulator_omnetpp/index.html
index 4e7ba28..67158de 100644
--- a/docs/simulators/network_simulator_omnetpp/index.html
+++ b/docs/simulators/network_simulator_omnetpp/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">
-  <meta property="og:title" content="Network Simulator OMNeT&#43;&#43; | Eclipse MOSAIC">
+  <meta property="og:title" content="Network Simulator OMNeT&#43;&#43; | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="OMNeT&#43;&#43; is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Network Simulator OMNeT&#43;&#43; | Eclipse MOSAIC</title>
+  <title>Network Simulator OMNeT&#43;&#43; | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -767,7 +771,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/network_simulator_sns/index.html b/docs/simulators/network_simulator_sns/index.html
index 0db2966..4042c0e 100644
--- a/docs/simulators/network_simulator_sns/index.html
+++ b/docs/simulators/network_simulator_sns/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/">
-  <meta property="og:title" content="Simple Network Simulator (SNS) | Eclipse MOSAIC">
+  <meta property="og:title" content="Simple Network Simulator (SNS) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Simple Network Simulator (SNS) | Eclipse MOSAIC</title>
+  <title>Simple Network Simulator (SNS) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -775,7 +779,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/simulators/traffic_simulator_sumo/index.html b/docs/simulators/traffic_simulator_sumo/index.html
index fe4a9ef..1a75131 100644
--- a/docs/simulators/traffic_simulator_sumo/index.html
+++ b/docs/simulators/traffic_simulator_sumo/index.html
@@ -240,9 +240,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/traffic_simulator_sumo/">
-  <meta property="og:title" content="Eclipse SUMO - Simulation of Urban MObility | Eclipse MOSAIC">
+  <meta property="og:title" content="Eclipse SUMO - Simulation of Urban MObility | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.
          Operating System GNU/Linux and Microsoft Windows   License EPL-2."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -269,7 +269,7 @@
 
 
 
-  <title>Eclipse SUMO - Simulation of Urban MObility | Eclipse MOSAIC</title>
+  <title>Eclipse SUMO - Simulation of Urban MObility | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -325,7 +325,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -338,7 +338,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -738,6 +738,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -770,7 +774,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
@@ -815,7 +854,8 @@
 <h3 id="installation">Installation</h3>
 
 
-<a class="mosaic-btn mosaic-btn-primary" href="https://sumo.dlr.de/wiki/Downloads" download>Download Eclipse SUMO</a>
+<a class="mosaic-btn mosaic-btn-primary" href="https://sumo.dlr.de/wiki/Downloads" title="Download Eclipse SUMO"><i class="fas fa-external-link-alt"></i>Download Eclipse SUMO</a>
+
 <p>Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.</p>
 <div class="alert alert-note">
   <div>
diff --git a/docs/simulators/trafficsign_simulator.md.backup b/docs/simulators/trafficsign_simulator.md.backup
index ec200cc..8b7ba33 100644
--- a/docs/simulators/trafficsign_simulator.md.backup
+++ b/docs/simulators/trafficsign_simulator.md.backup
@@ -24,9 +24,9 @@
     <scenario-name>.trafficsigns.xml [List of SUMO GUI representations of Eclipse MOSAIC traffic signs]
     images [Directory including image files of traffic signs]
   applications
-    TrafficSignsApplications-VAR(mosaic.version).jar [Vehicle application: Reaction on traffic signs]
+    TrafficSignsApplications.jar [Vehicle application: Reaction on traffic signs]
     TrafficSignsVehicleApplication.json [Vehicle application configuration]
-  mapping3
+  mapping
     mapping_config.json [Equipping vehicles with the traffic signs application]
   scenario_config.json [Enable traffic signs ambassador]
 ```
diff --git a/docs/visualization/filevis/index.html b/docs/visualization/filevis/index.html
index f79c1dd..475989c 100644
--- a/docs/visualization/filevis/index.html
+++ b/docs/visualization/filevis/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/filevis/">
-  <meta property="og:title" content="FileOutput | Eclipse MOSAIC">
+  <meta property="og:title" content="FileOutput | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>FileOutput | Eclipse MOSAIC</title>
+  <title>FileOutput | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -736,6 +736,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -772,7 +776,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/visualization/index.html b/docs/visualization/index.html
index 12f6716..e41c4bc 100644
--- a/docs/visualization/index.html
+++ b/docs/visualization/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/docs/visualization/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/docs/visualization/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/">
-  <meta property="og:title" content="WebSocket Visualizer | Eclipse MOSAIC">
+  <meta property="og:title" content="WebSocket Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>WebSocket Visualizer | Eclipse MOSAIC</title>
+  <title>WebSocket Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -733,6 +733,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -745,7 +749,42 @@
 
     
 
-    <main class="col-12 col-md-9 col-xl-9 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/visualization/index.xml b/docs/visualization/index.xml
index d6c5c16..2e262e5 100644
--- a/docs/visualization/index.xml
+++ b/docs/visualization/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>WebSocket Visualizer | Eclipse MOSAIC</title>
+    <title>WebSocket Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/docs/visualization/</link>
       <atom:link href="https://www.eclipse.org/mosaic/docs/visualization/index.xml" rel="self" type="application/rss+xml" />
     <description>WebSocket Visualizer</description>
diff --git a/docs/visualization/itef/index.html b/docs/visualization/itef/index.html
index 5faae22..e124299 100644
--- a/docs/visualization/itef/index.html
+++ b/docs/visualization/itef/index.html
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/itef/">
-  <meta property="og:title" content="Integrated Test and Evaluation Framework (ITEF) | Eclipse MOSAIC">
+  <meta property="og:title" content="Integrated Test and Evaluation Framework (ITEF) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The ITEF is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
@@ -271,7 +271,7 @@
 
 
 
-  <title>Integrated Test and Evaluation Framework (ITEF) | Eclipse MOSAIC</title>
+  <title>Integrated Test and Evaluation Framework (ITEF) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -327,7 +327,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -340,7 +340,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -740,6 +740,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -752,7 +756,42 @@
 
     
 
-    <main class="col-12 col-md-9 col-xl-9 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/visualization/phabmap/index.html b/docs/visualization/phabmap/index.html
index 34a7a4c..58eb56e 100644
--- a/docs/visualization/phabmap/index.html
+++ b/docs/visualization/phabmap/index.html
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/phabmap/">
-  <meta property="og:title" content="3D Visualization (PHABMap) | Eclipse MOSAIC">
+  <meta property="og:title" content="3D Visualization (PHABMap) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The 3D visualization RHABMap is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
@@ -271,7 +271,7 @@
 
 
 
-  <title>3D Visualization (PHABMap) | Eclipse MOSAIC</title>
+  <title>3D Visualization (PHABMap) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -327,7 +327,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -340,7 +340,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -740,6 +740,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -752,7 +756,42 @@
 
     
 
-    <main class="col-12 col-md-9 col-xl-9 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/docs/visualization/statistics/index.html b/docs/visualization/statistics/index.html
index 1e317ec..d858de7 100644
--- a/docs/visualization/statistics/index.html
+++ b/docs/visualization/statistics/index.html
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/statistics/">
-  <meta property="og:title" content="Statistics Visualizer | Eclipse MOSAIC">
+  <meta property="og:title" content="Statistics Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The Statistics Visualizer is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
@@ -271,7 +271,7 @@
 
 
 
-  <title>Statistics Visualizer | Eclipse MOSAIC</title>
+  <title>Statistics Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -327,7 +327,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -340,7 +340,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -740,6 +740,10 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+      <li >
+        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+      </li>
+      
     </ul>
     
 
@@ -768,7 +772,42 @@
     </div>
     
 
-    <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
+    <style>
+      @media (min-width:1140px) {
+        .docs-sidebar {
+          flex: 0 1 320px;
+        }
+        .docs-toc {
+          flex: 0 1 280px;
+        }
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          flex: 0 1 calc(100% - 320px);
+          width: 100%;
+        }
+        main.docs-content {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 600px) !important;
+          flex: 0 1 calc(100% - 600px);
+          width: 100%;
+        }
+      }
+      @media (max-width: 770px) {
+        main.docs-content {
+          max-width: 100% !important;
+          width: 100%;
+        }
+      }
+      @media (min-width: 771px) and(max-width: 1139px) {
+        main.docs-content.no-docs-toc {
+          padding-bottom: 0 !important;
+          max-width: calc(100% - 320px) !important;
+          width: 100%;
+        }
+      }
+    </style>
+    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">
 
       <article class="article">
 
diff --git a/download/index.html b/download/index.html
index 898c035..a536c72 100644
--- a/download/index.html
+++ b/download/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/download/">
-  <meta property="og:title" content="Download | Eclipse MOSAIC">
+  <meta property="og:title" content="Download | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="List of links to download the latest releases and other components."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Download | Eclipse MOSAIC</title>
+  <title>Download | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -584,7 +584,7 @@
           
           <h1>Download Eclipse MOSAIC</h1>
           
-          <p>Get the latest version of Eclipse MOSAIC<br>from DCAITI Mirror:</p>
+          <p>Get the latest version of Eclipse MOSAIC<br>from our partners at DCAITI:</p>
         </div>
         
 
@@ -596,7 +596,7 @@
             
               
                 <div class="button mb-2 d-flex">
-                  <a class="mosaic-btn mosaic-btn-light" href="https://www.dcaiti.tu-berlin.de/research/simulation/download/" title="Download Eclipse MOSAIC"><i class='fa fa-download' aria-hidden='true'></i>Download Eclipse MOSAIC</a>
+                  <a class="mosaic-btn mosaic-btn-light" href="https://www.dcaiti.tu-berlin.de/research/simulation/download/" title="Download Eclipse MOSAIC from DCAITI Mirror"><i class='fa fa-download' aria-hidden='true'></i>Download Eclipse MOSAIC from DCAITI Mirror</a>
                 </div>
               
             
@@ -779,7 +779,7 @@
 </tr>
 <tr>
 <td style="text-align:left"></td>
-<td style="text-align:left"><strong>ITS-G5 Communication</strong></td>
+<td style="text-align:left"><strong><a href="/mosaic/docs/simulators/network_simulator_sns/" title="ITS-G5 Communication">ITS-G5 Communication</a></strong></td>
 <td style="text-align:center"><strong>✓</strong></td>
 <td style="text-align:center"><strong>✓</strong></td>
 </tr>
diff --git a/get_in_contact/index.html b/get_in_contact/index.html
index 883b5cc..5dba003 100644
--- a/get_in_contact/index.html
+++ b/get_in_contact/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/get_in_contact/">
-  <meta property="og:title" content="Contact | Eclipse MOSAIC">
+  <meta property="og:title" content="Contact | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="Eclipse MOSAIC."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Contact | Eclipse MOSAIC</title>
+  <title>Contact | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/group/dcaiti/index.html b/group/dcaiti/index.html
index e6744ee..d436202 100644
--- a/group/dcaiti/index.html
+++ b/group/dcaiti/index.html
@@ -238,9 +238,9 @@
   
   <meta property="twitter:card" content="summary_large_image">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/group/dcaiti/">
-  <meta property="og:title" content=" | Eclipse MOSAIC">
+  <meta property="og:title" content=" | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The **Daimler Center for Automotive IT Innovations (DCAITI)** was founded in 2006 as a joint initiative of Daimler AG and the Technical University of Berlin. The DCAITI uses Eclipse MOSAIC since many years for various research projects in the field of automated and connected driving. Together with the TU Berlin students gain practical experience in software development by using and extending this simulation framework and models."><meta property="og:image" content="https://www.eclipse.org/mosaic/group/dcaiti/featured.PNG">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/group/dcaiti/featured.PNG"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title> | Eclipse MOSAIC</title>
+  <title> | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/group/fokus/index.html b/group/fokus/index.html
index 9618678..69b5a9c 100644
--- a/group/fokus/index.html
+++ b/group/fokus/index.html
@@ -238,9 +238,9 @@
   
   <meta property="twitter:card" content="summary_large_image">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/group/fokus/">
-  <meta property="og:title" content=" | Eclipse MOSAIC">
+  <meta property="og:title" content=" | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The **Fraunhofer Institute for Open Communication Systems (FOKUS)** is the leading group behind the simulation framework Eclipse MOSAIC, which has now been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners and researches to test smart mobility services and intelligent traffic scenarios."><meta property="og:image" content="https://www.eclipse.org/mosaic/group/fokus/featured.png">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/group/fokus/featured.png"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title> | Eclipse MOSAIC</title>
+  <title> | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/group/index.html b/group/index.html
index 364b9b7..3b69bc7 100644
--- a/group/index.html
+++ b/group/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/group/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/group/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/group/">
-  <meta property="og:title" content="Groups | Eclipse MOSAIC">
+  <meta property="og:title" content="Groups | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Groups | Eclipse MOSAIC</title>
+  <title>Groups | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/group/index.xml b/group/index.xml
index ea6e759..082a61a 100644
--- a/group/index.xml
+++ b/group/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Groups | Eclipse MOSAIC</title>
+    <title>Groups | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/group/</link>
       <atom:link href="https://www.eclipse.org/mosaic/group/index.xml" rel="self" type="application/rss+xml" />
     <description>Groups</description>
diff --git a/group/openmobility/index.html b/group/openmobility/index.html
index a73a36e..05cddd3 100644
--- a/group/openmobility/index.html
+++ b/group/openmobility/index.html
@@ -238,9 +238,9 @@
   
   <meta property="twitter:card" content="summary_large_image">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/group/openmobility/">
-  <meta property="og:title" content=" | Eclipse MOSAIC">
+  <meta property="og:title" content=" | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The **openMobility Working Group** was founded to support the development and broad introduction of open source mobility modeling and simulation technologies. The aim of the Working Group is to deliver a openMobility framework of tools based on validated models, which are accepted as standard tools in industry applications and academia. Eclipse MOSAIC is one part of the broad range of tools developed in this group."><meta property="og:image" content="https://www.eclipse.org/mosaic/group/openmobility/featured.png">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/group/openmobility/featured.png"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title> | Eclipse MOSAIC</title>
+  <title> | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/img/logos/projects/imagine.svg b/img/logos/projects/imagine.svg
new file mode 100644
index 0000000..a2b815b
--- /dev/null
+++ b/img/logos/projects/imagine.svg
@@ -0,0 +1,747 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 433.8 171.5" style="enable-background:new 0 0 433.8 171.5;" xml:space="preserve">
+<style type="text/css">
+	.st0{display:none;}
+	.st1{display:inline;}
+	.st2{fill:#FFFFFF;}
+	.st3{display:inline;fill:#FFFFFF;}
+	.st4{fill:#BDBCBC;}
+	.st5{fill:#706F6F;}
+	.st6{display:inline;fill:#BDBCBC;}
+	.st7{fill:#95D3E4;}
+	.st8{fill:#0098BA;}
+	.st9{display:inline;fill:#95D3E4;}
+	.st10{fill:#DADADA;}
+	.st11{display:inline;fill:#706F6F;}
+</style>
+<g id="Hintergrund_Schwarz" class="st0">
+	<rect x="0.1" y="0.1" class="st1" width="433.8" height="171.4"/>
+</g>
+<g id="Schwarzweiß_negativ" class="st0">
+	<g class="st1">
+		<path class="st2" d="M358.3,98.4c0,6.9,4.5,11.5,13.3,11.5h10.3c1,0,1.6-0.6,1.6-1.6v-5.7h-11.8c-3.6,0-4.8-1.5-4.8-5V92h14.5
+			v-7.2H367v-4.7c0-3.4,1.1-5,4.8-5h11.5v-7.2h-11.7c-8.9,0-13.3,4.6-13.3,11.6V98.4z"/>
+		<path class="st2" d="M325.6,110h8.5V87.6c1.8-1.8,3.5-2.7,5.6-2.7c2.4,0,3.4,1.2,3.4,4.6V110h6.9c1,0,1.6-0.6,1.6-1.6V88.5
+			c0-6.8-3.6-10.8-10.1-10.8c-2.8,0-5.7,1.1-8.3,3.5l-0.3-2.7h-7.2V110z M309.8,110h6.9c1,0,1.6-0.6,1.6-1.6V78.5h-8.5V110z
+			 M314,74.3c2.7,0,4.8-2,4.8-4.6s-2.1-4.6-4.8-4.6c-2.7,0-4.8,2-4.8,4.6S311.3,74.3,314,74.3"/>
+		<path class="st2" d="M271,95.2c0,10.1,6.1,15.6,15.7,15.6c5.7,0,10.6-1.2,15.7-2.6V88l-8.5,0.6v14.1c-1.8,0.5-3.4,0.8-6,0.8
+			c-5,0-8-2.1-8-9V83.3c0-6.9,3-9,8-9c3.7,0,6.2,0.6,9.4,1.4l1.5-6.9c-3.5-1.1-7.1-1.8-12.1-1.8c-9.6,0-15.7,5.6-15.7,15.6V95.2z
+			 M243.7,92l4.1-16.5c0.1-0.6,0.4-1,1-1c0.5,0,0.9,0.4,1,1L254,92H243.7z M230.6,110h8.8l2.7-10.8h13.8l2.7,10.8h8.8l-9.4-35.5
+			c-1-3.9-4-7.4-9-7.4c-5.1,0-8,3.4-9.1,7.4L230.6,110z M178.2,110h8.6l1.9-18.8c0.2-2.2,0.4-5.1,0.5-8.1c0.5,2.9,1.1,5.7,1.8,7.9
+			l2.6,9.1c1.1,3.9,3.5,7.3,8.6,7.3c5.1,0,7.4-3.4,8.6-7.3l2.6-8.8c0.6-2.1,1.2-4.9,1.8-7.8c0.1,2.8,0.2,5.5,0.5,7.6l1.9,18.8h8.6
+			l-5-42.2h-9.3l-9.2,31.3c-0.1,0.2-0.2,0.7-0.5,0.7c-0.2,0-0.4-0.4-0.5-0.7l-9.2-31.3h-9.3L178.2,110z M162.4,110h7.1
+			c1,0,1.6-0.6,1.6-1.6V67.8h-8.7V110z"/>
+		<path class="st2" d="M138.4,89.6c0,24.3-19.7,44-44,44s-44-19.7-44-44s19.7-44,44-44S138.4,65.3,138.4,89.6"/>
+		<path d="M135.6,74.1h-27.3V47.8c-4.4-1.5-9-2.2-13.9-2.2s-9.5,0.8-13.9,2.2v26.3H53.2c-1.8,4.8-2.8,10-2.8,15.5
+			c0,5.4,1,10.6,2.8,15.5h43.7c-1.3,0.9-2.5,1.8-3.8,2.6c-4.8,3.3-9.3,6.5-14.3,8.6c-4.7,2.1-9.7,3.7-14.9,5
+			c4.4,4.2,9.7,7.6,15.6,9.7c1.7-0.6,3.3-1.3,4.8-2c6.2-2.7,11.5-6.4,16.6-10c9.3-6.5,18.2-12.7,33.6-14h1c1.8-4.8,2.8-10,2.8-15.5
+			C138.4,84.1,137.4,78.9,135.6,74.1"/>
+		<path class="st2" d="M110.4,109.6l-10.2,6.5c-1.4,0.9-3.2,0.5-4.1-0.9l-1.3-2c-0.9-1.4-0.5-3.2,0.9-4.1l10.2-6.5
+			c1.4-0.9,3.2-0.5,4.1,0.9l1.3,2C112.3,106.9,111.8,108.7,110.4,109.6"/>
+		<path d="M108.2,109.7l-1.3,0.8l-3.3-5.2l1.3-0.8c0.7-0.4,1.6-0.2,2.1,0.5l1.7,2.6C109.1,108.4,108.9,109.3,108.2,109.7"/>
+		<path d="M99.5,115.3l0.8-0.5l-3.3-5.2l-0.8,0.5c-0.7,0.4-0.9,1.4-0.5,2.1l1.7,2.6C97.9,115.5,98.8,115.7,99.5,115.3"/>
+		<path class="st2" d="M82.8,68.7V56.6c0-1.7,1.3-3,3-3h2.4c1.7,0,3,1.3,3,3v12.1c0,1.7-1.3,3-3,3h-2.4
+			C84.2,71.7,82.8,70.3,82.8,68.7"/>
+		<path d="M83.9,66.7v-1.5h6.1v1.5c0,0.8-0.7,1.5-1.5,1.5h-3.1C84.6,68.2,83.9,67.5,83.9,66.7"/>
+		<path d="M83.9,56.5v0.9h6.1v-0.9c0-0.8-0.7-1.5-1.5-1.5h-3.1C84.6,55,83.9,55.7,83.9,56.5"/>
+		<path class="st2" d="M85.8,102.9h-7.2V92.3h7.2c1.7,0,3,1.3,3,3v4.6C88.8,101.5,87.4,102.9,85.8,102.9"/>
+		<path d="M86,101.7h-0.4v-8.3H86c0.8,0,1.5,0.7,1.5,1.5v5.3C87.5,101.1,86.8,101.7,86,101.7"/>
+		<path class="st2" d="M102.8,77.1h12.1c1.7,0,3,1.3,3,3v2.4c0,1.7-1.3,3-3,3h-12.1c-1.7,0-3-1.3-3-3v-2.4
+			C99.9,78.5,101.2,77.1,102.8,77.1"/>
+		<path d="M104.8,78.3h1.5v6.1h-1.5c-0.8,0-1.5-0.7-1.5-1.5v-3.1C103.3,78.9,104,78.3,104.8,78.3"/>
+		<path d="M115,78.3h-0.9v6.1h0.9c0.8,0,1.5-0.7,1.5-1.5v-3.1C116.5,78.9,115.8,78.3,115,78.3"/>
+		<path class="st2" d="M134,101.7h-12.1c-1.7,0-3-1.3-3-3v-2.4c0-1.7,1.3-3,3-3H134c1.7,0,3,1.3,3,3v2.4
+			C137,100.4,135.6,101.7,134,101.7"/>
+		<path d="M132,100.6h-1.5v-6.1h1.5c0.8,0,1.5,0.7,1.5,1.5v3.1C133.5,100,132.8,100.6,132,100.6"/>
+		<path d="M121.8,100.6h0.9v-6.1h-0.9c-0.8,0-1.5,0.7-1.5,1.5v3.1C120.3,100,121,100.6,121.8,100.6"/>
+	</g>
+	<path class="st3" d="M95.1,50.7h-1.3v-4.5h1.3V50.7z M95.1,62.5h-1.3V55h1.3V62.5z M95.1,74.3h-1.3v-7.5h1.3V74.3z"/>
+	<g class="st1">
+		<path class="st2" d="M94.4,143.4c-7.3,0-14.3-1.4-21-4.2c-6.4-2.7-12.2-6.6-17.1-11.5c-4.9-4.9-8.8-10.7-11.5-17.1
+			c-2.8-6.6-4.2-13.7-4.2-21c0-10.3,2.9-20.4,8.5-29c5.4-8.4,13-15.2,22-19.5l1.1,2.4c-8.6,4.1-15.8,10.5-21,18.6
+			c-5.3,8.2-8.1,17.8-8.1,27.6c0,6.9,1.4,13.6,4,19.9c2.6,6.1,6.3,11.6,11,16.3c4.7,4.7,10.2,8.4,16.3,11c6.3,2.7,13,4,19.9,4
+			s13.6-1.4,19.9-4c6.1-2.6,11.6-6.3,16.3-11c4.7-4.7,8.4-10.2,11-16.3c2.7-6.3,4-13,4-19.9c0-6.9-1.4-13.6-4-19.9
+			c-2.6-6.1-6.3-11.6-11-16.3c-4.7-4.7-10.2-8.4-16.3-11c-6.3-2.7-13-4-19.9-4v-2.6c7.3,0,14.3,1.4,21,4.2
+			c6.4,2.7,12.2,6.6,17.1,11.5c4.9,4.9,8.8,10.7,11.5,17.1c2.8,6.6,4.2,13.7,4.2,21c0,7.3-1.4,14.3-4.2,21
+			c-2.7,6.4-6.6,12.2-11.5,17.1c-4.9,4.9-10.7,8.8-17.1,11.5C108.7,142,101.7,143.4,94.4,143.4"/>
+	</g>
+	<polygon class="st3" points="67.7,35.3 73.7,50 78,39.6 	"/>
+	<g class="st1">
+		<path class="st2" d="M76.3,92.3H50.5c0.2,3.7,0.9,7.2,2,10.6h23.8V92.3z"/>
+	</g>
+	<rect x="52.1" y="88.4" class="st3" width="84.9" height="1.5"/>
+	<g class="st1">
+		<path class="st2" d="M94.4,45.5c-24.3,0-44,19.7-44,44c0,24.3,19.7,44,44,44s44-19.7,44-44C138.4,65.2,118.7,45.5,94.4,45.5
+			 M94.4,48.1c5.6,0,11,1.1,16.1,3.3c4.9,2.1,9.4,5.1,13.2,8.9c3.8,3.8,6.8,8.2,8.9,13.2c2.2,5.1,3.3,10.5,3.3,16.1
+			c0,5.6-1.1,11-3.3,16.1c-2.1,4.9-5.1,9.4-8.9,13.2c-3.8,3.8-8.2,6.8-13.2,8.9c-5.1,2.2-10.5,3.3-16.1,3.3s-11-1.1-16.1-3.3
+			c-4.9-2.1-9.4-5.1-13.2-8.9c-3.8-3.8-6.8-8.2-8.9-13.2c-2.2-5.1-3.3-10.5-3.3-16.1c0-5.6,1.1-11,3.3-16.1
+			c2.1-4.9,5.1-9.4,8.9-13.2c3.8-3.8,8.2-6.8,13.2-8.9C83.4,49.2,88.8,48.1,94.4,48.1"/>
+	</g>
+</g>
+<g id="Grauwerte_negativ" class="st0">
+	<g class="st1">
+		<path class="st2" d="M358.3,98.4c0,6.9,4.5,11.5,13.3,11.5h10.3c1,0,1.6-0.6,1.6-1.6v-5.7h-11.8c-3.6,0-4.8-1.5-4.8-5V92h14.5
+			v-7.2H367v-4.7c0-3.4,1.1-5,4.8-5h11.5v-7.2h-11.7c-8.9,0-13.3,4.6-13.3,11.6V98.4z"/>
+		<path class="st4" d="M325.6,110h8.5V87.6c1.8-1.8,3.5-2.7,5.6-2.7c2.4,0,3.4,1.2,3.4,4.6V110h6.9c1,0,1.6-0.6,1.6-1.6V88.5
+			c0-6.8-3.6-10.8-10.1-10.8c-2.8,0-5.7,1.1-8.3,3.5l-0.3-2.7h-7.2V110z M309.8,110h6.9c1,0,1.6-0.6,1.6-1.6V78.5h-8.5V110z
+			 M314,74.3c2.7,0,4.8-2,4.8-4.6s-2.1-4.6-4.8-4.6c-2.7,0-4.8,2-4.8,4.6S311.3,74.3,314,74.3"/>
+		<path class="st2" d="M271,95.2c0,10.1,6.1,15.6,15.7,15.6c5.7,0,10.6-1.2,15.7-2.6V88l-8.5,0.6v14.1c-1.8,0.5-3.4,0.8-6,0.8
+			c-5,0-8-2.1-8-9V83.3c0-6.9,3-9,8-9c3.7,0,6.2,0.6,9.4,1.4l1.5-6.9c-3.5-1.1-7.1-1.8-12.1-1.8c-9.6,0-15.7,5.6-15.7,15.6V95.2z
+			 M243.7,92l4.1-16.5c0.1-0.6,0.4-1,1-1c0.5,0,0.9,0.4,1,1L254,92H243.7z M230.6,110h8.8l2.7-10.8h13.8l2.7,10.8h8.8l-9.4-35.5
+			c-1-3.9-4-7.4-9-7.4c-5.1,0-8,3.4-9.1,7.4L230.6,110z M178.2,110h8.6l1.9-18.8c0.2-2.2,0.4-5.1,0.5-8.1c0.5,2.9,1.1,5.7,1.8,7.9
+			l2.6,9.1c1.1,3.9,3.5,7.3,8.6,7.3c5.1,0,7.4-3.4,8.6-7.3l2.6-8.8c0.6-2.1,1.2-4.9,1.8-7.8c0.1,2.8,0.2,5.5,0.5,7.6l1.9,18.8h8.6
+			l-5-42.2h-9.3l-9.2,31.3c-0.1,0.2-0.2,0.7-0.5,0.7c-0.2,0-0.4-0.4-0.5-0.7l-9.2-31.3h-9.3L178.2,110z M162.4,110h7.1
+			c1,0,1.6-0.6,1.6-1.6V67.8h-8.7V110z"/>
+		<path class="st5" d="M138.4,89.6c0,24.3-19.7,44-44,44s-44-19.7-44-44s19.7-44,44-44S138.4,65.3,138.4,89.6"/>
+		<path class="st4" d="M135.6,74.1h-27.3V47.8c-4.4-1.5-9-2.2-13.9-2.2s-9.5,0.8-13.9,2.2v26.3H53.2c-1.8,4.8-2.8,10-2.8,15.5
+			c0,5.4,1,10.6,2.8,15.5h43.7c-1.3,0.9-2.5,1.8-3.8,2.6c-4.8,3.3-9.3,6.5-14.3,8.6c-4.7,2.1-9.7,3.7-14.9,5
+			c4.4,4.2,9.7,7.6,15.6,9.7c1.7-0.6,3.3-1.3,4.8-2c6.2-2.7,11.5-6.4,16.6-10c9.3-6.5,18.2-12.7,33.6-14h1c1.8-4.8,2.8-10,2.8-15.5
+			C138.4,84.1,137.4,78.9,135.6,74.1"/>
+		<path d="M110.4,109.6l-10.2,6.5c-1.4,0.9-3.2,0.5-4.1-0.9l-1.3-2c-0.9-1.4-0.5-3.2,0.9-4.1l10.2-6.5c1.4-0.9,3.2-0.5,4.1,0.9
+			l1.3,2C112.3,106.9,111.8,108.7,110.4,109.6"/>
+		<path class="st2" d="M108.2,109.7l-1.3,0.8l-3.3-5.2l1.3-0.8c0.7-0.4,1.6-0.2,2.1,0.5l1.7,2.6
+			C109.1,108.4,108.9,109.3,108.2,109.7"/>
+		<path class="st2" d="M99.5,115.3l0.8-0.5l-3.3-5.2l-0.8,0.5c-0.7,0.4-0.9,1.4-0.5,2.1l1.7,2.6C97.9,115.5,98.8,115.7,99.5,115.3"
+			/>
+		<path d="M82.8,68.7V56.6c0-1.7,1.3-3,3-3h2.4c1.7,0,3,1.3,3,3v12.1c0,1.7-1.3,3-3,3h-2.4C84.2,71.7,82.8,70.3,82.8,68.7"/>
+		<path class="st2" d="M83.9,66.7v-1.5h6.1v1.5c0,0.8-0.7,1.5-1.5,1.5h-3.1C84.6,68.2,83.9,67.5,83.9,66.7"/>
+		<path class="st2" d="M83.9,56.5v0.9h6.1v-0.9c0-0.8-0.7-1.5-1.5-1.5h-3.1C84.6,55,83.9,55.7,83.9,56.5"/>
+		<path d="M85.8,102.9h-7.2V92.3h7.2c1.7,0,3,1.3,3,3v4.6C88.8,101.5,87.4,102.9,85.8,102.9"/>
+		<path class="st2" d="M86,101.7h-0.4v-8.3H86c0.8,0,1.5,0.7,1.5,1.5v5.3C87.5,101.1,86.8,101.7,86,101.7"/>
+		<path d="M102.8,77.1h12.1c1.7,0,3,1.3,3,3v2.4c0,1.7-1.3,3-3,3h-12.1c-1.7,0-3-1.3-3-3v-2.4C99.9,78.5,101.2,77.1,102.8,77.1"/>
+		<path class="st2" d="M104.8,78.3h1.5v6.1h-1.5c-0.8,0-1.5-0.7-1.5-1.5v-3.1C103.3,78.9,104,78.3,104.8,78.3"/>
+		<path class="st2" d="M115,78.3h-0.9v6.1h0.9c0.8,0,1.5-0.7,1.5-1.5v-3.1C116.5,78.9,115.8,78.3,115,78.3"/>
+		<path d="M134,101.7h-12.1c-1.7,0-3-1.3-3-3v-2.4c0-1.7,1.3-3,3-3H134c1.7,0,3,1.3,3,3v2.4C137,100.4,135.6,101.7,134,101.7"/>
+		<path class="st2" d="M132,100.6h-1.5v-6.1h1.5c0.8,0,1.5,0.7,1.5,1.5v3.1C133.5,100,132.8,100.6,132,100.6"/>
+		<path class="st2" d="M121.8,100.6h0.9v-6.1h-0.9c-0.8,0-1.5,0.7-1.5,1.5v3.1C120.3,100,121,100.6,121.8,100.6"/>
+	</g>
+	<path class="st3" d="M95.1,50.7h-1.3v-4.5h1.3V50.7z M95.1,62.5h-1.3V55h1.3V62.5z M95.1,74.3h-1.3v-7.5h1.3V74.3z"/>
+	<g class="st1">
+		<path class="st4" d="M94.4,143.4c-7.3,0-14.3-1.4-21-4.2c-6.4-2.7-12.2-6.6-17.1-11.5c-4.9-4.9-8.8-10.7-11.5-17.1
+			c-2.8-6.6-4.2-13.7-4.2-21c0-10.3,2.9-20.4,8.5-29c5.4-8.4,13-15.2,22-19.5l1.1,2.4c-8.6,4.1-15.8,10.5-21,18.6
+			c-5.3,8.2-8.1,17.8-8.1,27.6c0,6.9,1.4,13.6,4,19.9c2.6,6.1,6.3,11.6,11,16.3c4.7,4.7,10.2,8.4,16.3,11c6.3,2.7,13,4,19.9,4
+			s13.6-1.4,19.9-4c6.1-2.6,11.6-6.3,16.3-11c4.7-4.7,8.4-10.2,11-16.3c2.7-6.3,4-13,4-19.9c0-6.9-1.4-13.6-4-19.9
+			c-2.6-6.1-6.3-11.6-11-16.3c-4.7-4.7-10.2-8.4-16.3-11c-6.3-2.7-13-4-19.9-4v-2.6c7.3,0,14.3,1.4,21,4.2
+			c6.4,2.7,12.2,6.6,17.1,11.5c4.9,4.9,8.8,10.7,11.5,17.1c2.8,6.6,4.2,13.7,4.2,21c0,7.3-1.4,14.3-4.2,21
+			c-2.7,6.4-6.6,12.2-11.5,17.1c-4.9,4.9-10.7,8.8-17.1,11.5C108.7,142,101.7,143.4,94.4,143.4"/>
+	</g>
+	<polygon class="st6" points="67.7,35.3 73.7,50 78,39.6 	"/>
+	<g class="st1">
+		<path d="M76.3,92.3H50.5c0.2,3.7,0.9,7.2,2,10.6h23.8V92.3z"/>
+	</g>
+	<rect x="52.1" y="88.4" class="st3" width="84.9" height="1.5"/>
+	<g class="st1">
+		<path class="st4" d="M94.4,45.5c-24.3,0-44,19.7-44,44c0,24.3,19.7,44,44,44s44-19.7,44-44C138.4,65.2,118.7,45.5,94.4,45.5
+			 M94.4,48.1c5.6,0,11,1.1,16.1,3.3c4.9,2.1,9.4,5.1,13.2,8.9c3.8,3.8,6.8,8.2,8.9,13.2c2.2,5.1,3.3,10.5,3.3,16.1
+			c0,5.6-1.1,11-3.3,16.1c-2.1,4.9-5.1,9.4-8.9,13.2c-3.8,3.8-8.2,6.8-13.2,8.9c-5.1,2.2-10.5,3.3-16.1,3.3s-11-1.1-16.1-3.3
+			c-4.9-2.1-9.4-5.1-13.2-8.9c-3.8-3.8-6.8-8.2-8.9-13.2c-2.2-5.1-3.3-10.5-3.3-16.1c0-5.6,1.1-11,3.3-16.1
+			c2.1-4.9,5.1-9.4,8.9-13.2c3.8-3.8,8.2-6.8,13.2-8.9C83.4,49.2,88.8,48.1,94.4,48.1"/>
+	</g>
+</g>
+<g id="Vollfarbig_negativ" class="st0">
+	<g class="st1">
+		<path class="st2" d="M358.3,98.4c0,6.9,4.5,11.5,13.3,11.5h10.3c1,0,1.6-0.6,1.6-1.6v-5.7h-11.8c-3.6,0-4.8-1.5-4.8-5V92h14.5
+			v-7.2H367v-4.7c0-3.4,1.1-5,4.8-5h11.5v-7.2h-11.7c-8.9,0-13.3,4.6-13.3,11.6V98.4z"/>
+		<path class="st7" d="M325.6,110h8.5V87.6c1.8-1.8,3.5-2.7,5.6-2.7c2.4,0,3.4,1.2,3.4,4.6V110h6.9c1,0,1.6-0.6,1.6-1.6V88.5
+			c0-6.8-3.6-10.8-10.1-10.8c-2.8,0-5.7,1.1-8.3,3.5l-0.3-2.7h-7.2V110z M309.8,110h6.9c1,0,1.6-0.6,1.6-1.6V78.5h-8.5V110z
+			 M314,74.3c2.7,0,4.8-2,4.8-4.6s-2.1-4.6-4.8-4.6c-2.7,0-4.8,2-4.8,4.6S311.3,74.3,314,74.3"/>
+		<path class="st2" d="M271,95.2c0,10.1,6.1,15.6,15.7,15.6c5.7,0,10.6-1.2,15.7-2.6V88l-8.5,0.6v14.1c-1.8,0.5-3.4,0.8-6,0.8
+			c-5,0-8-2.1-8-9V83.3c0-6.9,3-9,8-9c3.7,0,6.2,0.6,9.4,1.4l1.5-6.9c-3.5-1.1-7.1-1.8-12.1-1.8c-9.6,0-15.7,5.6-15.7,15.6V95.2z
+			 M243.7,92l4.1-16.5c0.1-0.6,0.4-1,1-1c0.5,0,0.9,0.4,1,1L254,92H243.7z M230.6,110h8.8l2.7-10.8h13.8l2.7,10.8h8.8l-9.4-35.5
+			c-1-3.9-4-7.4-9-7.4c-5.1,0-8,3.4-9.1,7.4L230.6,110z M178.2,110h8.6l1.9-18.8c0.2-2.2,0.4-5.1,0.5-8.1c0.5,2.9,1.1,5.7,1.8,7.9
+			l2.6,9.1c1.1,3.9,3.5,7.3,8.6,7.3c5.1,0,7.4-3.4,8.6-7.3l2.6-8.8c0.6-2.1,1.2-4.9,1.8-7.8c0.1,2.8,0.2,5.5,0.5,7.6l1.9,18.8h8.6
+			l-5-42.2h-9.3l-9.2,31.3c-0.1,0.2-0.2,0.7-0.5,0.7c-0.2,0-0.4-0.4-0.5-0.7l-9.2-31.3h-9.3L178.2,110z M162.4,110h7.1
+			c1,0,1.6-0.6,1.6-1.6V67.8h-8.7V110z"/>
+		<path class="st8" d="M138.4,89.6c0,24.3-19.7,44-44,44s-44-19.7-44-44s19.7-44,44-44S138.4,65.3,138.4,89.6"/>
+		<path class="st7" d="M135.6,74.1h-27.3V47.8c-4.4-1.5-9-2.2-13.9-2.2s-9.5,0.8-13.9,2.2v26.3H53.2c-1.8,4.8-2.8,10-2.8,15.5
+			c0,5.4,1,10.6,2.8,15.5h43.7c-1.3,0.9-2.5,1.8-3.8,2.6c-4.8,3.3-9.3,6.5-14.3,8.6c-4.7,2.1-9.7,3.7-14.9,5
+			c4.4,4.2,9.7,7.6,15.6,9.7c1.7-0.6,3.3-1.3,4.8-2c6.2-2.7,11.5-6.4,16.6-10c9.3-6.5,18.2-12.7,33.6-14h1c1.8-4.8,2.8-10,2.8-15.5
+			C138.4,84.1,137.4,78.9,135.6,74.1"/>
+		<path d="M110.4,109.6l-10.2,6.5c-1.4,0.9-3.2,0.5-4.1-0.9l-1.3-2c-0.9-1.4-0.5-3.2,0.9-4.1l10.2-6.5c1.4-0.9,3.2-0.5,4.1,0.9
+			l1.3,2C112.3,106.9,111.8,108.7,110.4,109.6"/>
+		<path class="st2" d="M108.2,109.7l-1.3,0.8l-3.3-5.2l1.3-0.8c0.7-0.4,1.6-0.2,2.1,0.5l1.7,2.6
+			C109.1,108.4,108.9,109.3,108.2,109.7"/>
+		<path class="st2" d="M99.5,115.3l0.8-0.5l-3.3-5.2l-0.8,0.5c-0.7,0.4-0.9,1.4-0.5,2.1l1.7,2.6C97.9,115.5,98.8,115.7,99.5,115.3"
+			/>
+		<path d="M82.8,68.7V56.6c0-1.7,1.3-3,3-3h2.4c1.7,0,3,1.3,3,3v12.1c0,1.7-1.3,3-3,3h-2.4C84.2,71.7,82.8,70.3,82.8,68.7"/>
+		<path class="st2" d="M83.9,66.7v-1.5h6.1v1.5c0,0.8-0.7,1.5-1.5,1.5h-3.1C84.6,68.2,83.9,67.5,83.9,66.7"/>
+		<path class="st2" d="M83.9,56.5v0.9h6.1v-0.9c0-0.8-0.7-1.5-1.5-1.5h-3.1C84.6,55,83.9,55.7,83.9,56.5"/>
+		<path d="M85.8,102.9h-7.2V92.3h7.2c1.7,0,3,1.3,3,3v4.6C88.8,101.5,87.4,102.9,85.8,102.9"/>
+		<path class="st2" d="M86,101.7h-0.4v-8.3H86c0.8,0,1.5,0.7,1.5,1.5v5.3C87.5,101.1,86.8,101.7,86,101.7"/>
+		<path d="M102.8,77.1h12.1c1.7,0,3,1.3,3,3v2.4c0,1.7-1.3,3-3,3h-12.1c-1.7,0-3-1.3-3-3v-2.4C99.9,78.5,101.2,77.1,102.8,77.1"/>
+		<path class="st2" d="M104.8,78.3h1.5v6.1h-1.5c-0.8,0-1.5-0.7-1.5-1.5v-3.1C103.3,78.9,104,78.3,104.8,78.3"/>
+		<path class="st2" d="M115,78.3h-0.9v6.1h0.9c0.8,0,1.5-0.7,1.5-1.5v-3.1C116.5,78.9,115.8,78.3,115,78.3"/>
+		<path d="M134,101.7h-12.1c-1.7,0-3-1.3-3-3v-2.4c0-1.7,1.3-3,3-3H134c1.7,0,3,1.3,3,3v2.4C137,100.4,135.6,101.7,134,101.7"/>
+		<path class="st2" d="M132,100.6h-1.5v-6.1h1.5c0.8,0,1.5,0.7,1.5,1.5v3.1C133.5,100,132.8,100.6,132,100.6"/>
+		<path class="st2" d="M121.8,100.6h0.9v-6.1h-0.9c-0.8,0-1.5,0.7-1.5,1.5v3.1C120.3,100,121,100.6,121.8,100.6"/>
+	</g>
+	<path class="st3" d="M95.1,50.7h-1.3v-4.5h1.3V50.7z M95.1,62.5h-1.3V55h1.3V62.5z M95.1,74.3h-1.3v-7.5h1.3V74.3z"/>
+	<g class="st1">
+		<path class="st7" d="M94.4,143.4c-7.3,0-14.3-1.4-21-4.2c-6.4-2.7-12.2-6.6-17.1-11.5c-4.9-4.9-8.8-10.7-11.5-17.1
+			c-2.8-6.6-4.2-13.7-4.2-21c0-10.3,2.9-20.4,8.5-29c5.4-8.4,13-15.2,22-19.5l1.1,2.4c-8.6,4.1-15.8,10.5-21,18.6
+			c-5.3,8.2-8.1,17.8-8.1,27.6c0,6.9,1.4,13.6,4,19.9c2.6,6.1,6.3,11.6,11,16.3c4.7,4.7,10.2,8.4,16.3,11c6.3,2.7,13,4,19.9,4
+			s13.6-1.4,19.9-4c6.1-2.6,11.6-6.3,16.3-11c4.7-4.7,8.4-10.2,11-16.3c2.7-6.3,4-13,4-19.9c0-6.9-1.4-13.6-4-19.9
+			c-2.6-6.1-6.3-11.6-11-16.3c-4.7-4.7-10.2-8.4-16.3-11c-6.3-2.7-13-4-19.9-4v-2.6c7.3,0,14.3,1.4,21,4.2
+			c6.4,2.7,12.2,6.6,17.1,11.5c4.9,4.9,8.8,10.7,11.5,17.1c2.8,6.6,4.2,13.7,4.2,21c0,7.3-1.4,14.3-4.2,21
+			c-2.7,6.4-6.6,12.2-11.5,17.1c-4.9,4.9-10.7,8.8-17.1,11.5C108.7,142,101.7,143.4,94.4,143.4"/>
+	</g>
+	<polygon class="st9" points="67.7,35.3 73.7,50 78,39.6 	"/>
+	<g class="st1">
+		<path d="M76.3,92.3H50.5c0.2,3.7,0.9,7.2,2,10.6h23.8V92.3z"/>
+	</g>
+	<rect x="52.1" y="88.4" class="st3" width="84.9" height="1.5"/>
+	<g class="st1">
+		<path class="st7" d="M94.4,45.5c-24.3,0-44,19.7-44,44c0,24.3,19.7,44,44,44s44-19.7,44-44C138.4,65.2,118.7,45.5,94.4,45.5
+			 M94.4,48.1c5.6,0,11,1.1,16.1,3.3c4.9,2.1,9.4,5.1,13.2,8.9c3.8,3.8,6.8,8.2,8.9,13.2c2.2,5.1,3.3,10.5,3.3,16.1
+			c0,5.6-1.1,11-3.3,16.1c-2.1,4.9-5.1,9.4-8.9,13.2c-3.8,3.8-8.2,6.8-13.2,8.9c-5.1,2.2-10.5,3.3-16.1,3.3s-11-1.1-16.1-3.3
+			c-4.9-2.1-9.4-5.1-13.2-8.9c-3.8-3.8-6.8-8.2-8.9-13.2c-2.2-5.1-3.3-10.5-3.3-16.1c0-5.6,1.1-11,3.3-16.1
+			c2.1-4.9,5.1-9.4,8.9-13.2c3.8-3.8,8.2-6.8,13.2-8.9C83.4,49.2,88.8,48.1,94.4,48.1"/>
+	</g>
+</g>
+<g id="Schwarzweiß_positiv" class="st0">
+	<g class="st1">
+		<path d="M358.3,98.4c0,6.9,4.5,11.5,13.3,11.5h10.3c1,0,1.6-0.6,1.6-1.6v-5.7h-11.8c-3.6,0-4.8-1.5-4.8-5V92h14.5v-7.2H367v-4.7
+			c0-3.4,1.1-5,4.8-5h11.5v-7.2h-11.7c-8.9,0-13.3,4.6-13.3,11.6V98.4z"/>
+		<path d="M325.6,110h8.5V87.6c1.8-1.8,3.5-2.7,5.6-2.7c2.4,0,3.4,1.2,3.4,4.6V110h6.9c1,0,1.6-0.6,1.6-1.6V88.5
+			c0-6.8-3.6-10.8-10.1-10.8c-2.8,0-5.7,1.1-8.3,3.5l-0.3-2.7h-7.2V110z M309.8,110h6.9c1,0,1.6-0.6,1.6-1.6V78.5h-8.5V110z
+			 M314,74.3c2.7,0,4.8-2,4.8-4.6s-2.1-4.6-4.8-4.6c-2.7,0-4.8,2-4.8,4.6S311.3,74.3,314,74.3"/>
+		<path d="M271,95.2c0,10.1,6.1,15.6,15.7,15.6c5.7,0,10.6-1.2,15.7-2.6V88l-8.5,0.6v14.1c-1.8,0.5-3.4,0.8-6,0.8c-5,0-8-2.1-8-9
+			V83.3c0-6.9,3-9,8-9c3.7,0,6.2,0.6,9.4,1.4l1.5-6.9c-3.5-1.1-7.1-1.8-12.1-1.8c-9.6,0-15.7,5.6-15.7,15.6V95.2z M243.7,92
+			l4.1-16.5c0.1-0.6,0.4-1,1-1c0.5,0,0.9,0.4,1,1L254,92H243.7z M230.6,110h8.8l2.7-10.8h13.8l2.7,10.8h8.8l-9.4-35.5
+			c-1-3.9-4-7.4-9-7.4c-5.1,0-8,3.4-9.1,7.4L230.6,110z M178.2,110h8.6l1.9-18.8c0.2-2.2,0.4-5.1,0.5-8.1c0.5,2.9,1.1,5.7,1.8,7.9
+			l2.6,9.1c1.1,3.9,3.5,7.3,8.6,7.3c5.1,0,7.4-3.4,8.6-7.3l2.6-8.8c0.6-2.1,1.2-4.9,1.8-7.8c0.1,2.8,0.2,5.5,0.5,7.6l1.9,18.8h8.6
+			l-5-42.2h-9.3l-9.2,31.3c-0.1,0.2-0.2,0.7-0.5,0.7c-0.2,0-0.4-0.4-0.5-0.7l-9.2-31.3h-9.3L178.2,110z M162.4,110h7.1
+			c1,0,1.6-0.6,1.6-1.6V67.8h-8.7V110z"/>
+		<path d="M138.4,89.6c0,24.3-19.7,44-44,44s-44-19.7-44-44s19.7-44,44-44S138.4,65.3,138.4,89.6"/>
+		<path class="st2" d="M135.6,74.1h-27.3V47.8c-4.4-1.5-9-2.2-13.9-2.2s-9.5,0.8-13.9,2.2v26.3H53.2c-1.8,4.8-2.8,10-2.8,15.5
+			c0,5.4,1,10.6,2.8,15.5h43.7c-1.3,0.9-2.5,1.8-3.8,2.6c-4.8,3.3-9.3,6.5-14.3,8.6c-4.7,2.1-9.7,3.7-14.9,5
+			c4.4,4.2,9.7,7.6,15.6,9.7c1.7-0.6,3.3-1.3,4.8-2c6.2-2.7,11.5-6.4,16.6-10c9.3-6.5,18.2-12.7,33.6-14h1c1.8-4.8,2.8-10,2.8-15.5
+			C138.4,84.1,137.4,78.9,135.6,74.1"/>
+		<path d="M110.4,109.6l-10.2,6.5c-1.4,0.9-3.2,0.5-4.1-0.9l-1.3-2c-0.9-1.4-0.5-3.2,0.9-4.1l10.2-6.5c1.4-0.9,3.2-0.5,4.1,0.9
+			l1.3,2C112.3,106.9,111.8,108.7,110.4,109.6"/>
+		<path class="st2" d="M108.2,109.7l-1.3,0.8l-3.3-5.2l1.3-0.8c0.7-0.4,1.6-0.2,2.1,0.5l1.7,2.6
+			C109.1,108.4,108.9,109.3,108.2,109.7"/>
+		<path class="st2" d="M99.5,115.3l0.8-0.5l-3.3-5.2l-0.8,0.5c-0.7,0.4-0.9,1.4-0.5,2.1l1.7,2.6C97.9,115.5,98.8,115.7,99.5,115.3"
+			/>
+		<path d="M82.8,68.7V56.6c0-1.7,1.3-3,3-3h2.4c1.7,0,3,1.3,3,3v12.1c0,1.7-1.3,3-3,3h-2.4C84.2,71.7,82.8,70.3,82.8,68.7"/>
+		<path class="st2" d="M83.9,66.7v-1.5h6.1v1.5c0,0.8-0.7,1.5-1.5,1.5h-3.1C84.6,68.2,83.9,67.5,83.9,66.7"/>
+		<path class="st2" d="M83.9,56.5v0.9h6.1v-0.9c0-0.8-0.7-1.5-1.5-1.5h-3.1C84.6,55,83.9,55.7,83.9,56.5"/>
+		<path d="M85.8,102.9h-7.2V92.3h7.2c1.7,0,3,1.3,3,3v4.6C88.8,101.5,87.4,102.9,85.8,102.9"/>
+		<path class="st2" d="M86,101.7h-0.4v-8.3H86c0.8,0,1.5,0.7,1.5,1.5v5.3C87.5,101.1,86.8,101.7,86,101.7"/>
+		<path d="M102.8,77.1h12.1c1.7,0,3,1.3,3,3v2.4c0,1.7-1.3,3-3,3h-12.1c-1.7,0-3-1.3-3-3v-2.4C99.9,78.5,101.2,77.1,102.8,77.1"/>
+		<path class="st2" d="M104.8,78.3h1.5v6.1h-1.5c-0.8,0-1.5-0.7-1.5-1.5v-3.1C103.3,78.9,104,78.3,104.8,78.3"/>
+		<path class="st2" d="M115,78.3h-0.9v6.1h0.9c0.8,0,1.5-0.7,1.5-1.5v-3.1C116.5,78.9,115.8,78.3,115,78.3"/>
+		<path d="M134,101.7h-12.1c-1.7,0-3-1.3-3-3v-2.4c0-1.7,1.3-3,3-3H134c1.7,0,3,1.3,3,3v2.4C137,100.4,135.6,101.7,134,101.7"/>
+		<path class="st2" d="M132,100.6h-1.5v-6.1h1.5c0.8,0,1.5,0.7,1.5,1.5v3.1C133.5,100,132.8,100.6,132,100.6"/>
+		<path class="st2" d="M121.8,100.6h0.9v-6.1h-0.9c-0.8,0-1.5,0.7-1.5,1.5v3.1C120.3,100,121,100.6,121.8,100.6"/>
+	</g>
+	<path class="st1" d="M95.1,50.7h-1.3v-4.5h1.3V50.7z M95.1,62.5h-1.3V55h1.3V62.5z M95.1,74.3h-1.3v-7.5h1.3V74.3z"/>
+	<g class="st1">
+		<path d="M94.4,143.4c-7.3,0-14.3-1.4-21-4.2c-6.4-2.7-12.2-6.6-17.1-11.5c-4.9-4.9-8.8-10.7-11.5-17.1c-2.8-6.6-4.2-13.7-4.2-21
+			c0-10.3,2.9-20.4,8.5-29c5.4-8.4,13-15.2,22-19.5l1.1,2.4c-8.6,4.1-15.8,10.5-21,18.6c-5.3,8.2-8.1,17.8-8.1,27.6
+			c0,6.9,1.4,13.6,4,19.9c2.6,6.1,6.3,11.6,11,16.3c4.7,4.7,10.2,8.4,16.3,11c6.3,2.7,13,4,19.9,4s13.6-1.4,19.9-4
+			c6.1-2.6,11.6-6.3,16.3-11c4.7-4.7,8.4-10.2,11-16.3c2.7-6.3,4-13,4-19.9c0-6.9-1.4-13.6-4-19.9c-2.6-6.1-6.3-11.6-11-16.3
+			c-4.7-4.7-10.2-8.4-16.3-11c-6.3-2.7-13-4-19.9-4v-2.6c7.3,0,14.3,1.4,21,4.2c6.4,2.7,12.2,6.6,17.1,11.5
+			c4.9,4.9,8.8,10.7,11.5,17.1c2.8,6.6,4.2,13.7,4.2,21c0,7.3-1.4,14.3-4.2,21c-2.7,6.4-6.6,12.2-11.5,17.1
+			c-4.9,4.9-10.7,8.8-17.1,11.5C108.7,142,101.7,143.4,94.4,143.4"/>
+	</g>
+	<polygon class="st1" points="67.7,35.3 73.7,50 78,39.6 	"/>
+	<g class="st1">
+		<path d="M76.3,92.3H50.5c0.2,3.7,0.9,7.2,2,10.6h23.8V92.3z"/>
+	</g>
+	<rect x="52.1" y="88.4" class="st1" width="84.9" height="1.5"/>
+	<g class="st1">
+		<path d="M94.4,45.5c-24.3,0-44,19.7-44,44c0,24.3,19.7,44,44,44s44-19.7,44-44C138.4,65.2,118.7,45.5,94.4,45.5 M94.4,48.1
+			c5.6,0,11,1.1,16.1,3.3c4.9,2.1,9.4,5.1,13.2,8.9c3.8,3.8,6.8,8.2,8.9,13.2c2.2,5.1,3.3,10.5,3.3,16.1c0,5.6-1.1,11-3.3,16.1
+			c-2.1,4.9-5.1,9.4-8.9,13.2c-3.8,3.8-8.2,6.8-13.2,8.9c-5.1,2.2-10.5,3.3-16.1,3.3s-11-1.1-16.1-3.3c-4.9-2.1-9.4-5.1-13.2-8.9
+			c-3.8-3.8-6.8-8.2-8.9-13.2c-2.2-5.1-3.3-10.5-3.3-16.1c0-5.6,1.1-11,3.3-16.1c2.1-4.9,5.1-9.4,8.9-13.2c3.8-3.8,8.2-6.8,13.2-8.9
+			C83.4,49.2,88.8,48.1,94.4,48.1"/>
+	</g>
+</g>
+<g id="Grauwerte_positiv" class="st0">
+	<g class="st1">
+		<path d="M358.3,98.4c0,6.9,4.5,11.5,13.3,11.5h10.3c1,0,1.6-0.6,1.6-1.6v-5.7h-11.8c-3.6,0-4.8-1.5-4.8-5V92h14.5v-7.2H367v-4.7
+			c0-3.4,1.1-5,4.8-5h11.5v-7.2h-11.7c-8.9,0-13.3,4.6-13.3,11.6V98.4z"/>
+		<path class="st5" d="M325.6,110h8.5V87.6c1.8-1.8,3.5-2.7,5.6-2.7c2.4,0,3.4,1.2,3.4,4.6V110h6.9c1,0,1.6-0.6,1.6-1.6V88.5
+			c0-6.8-3.6-10.8-10.1-10.8c-2.8,0-5.7,1.1-8.3,3.5l-0.3-2.7h-7.2V110z M309.8,110h6.9c1,0,1.6-0.6,1.6-1.6V78.5h-8.5V110z
+			 M314,74.3c2.7,0,4.8-2,4.8-4.6s-2.1-4.6-4.8-4.6c-2.7,0-4.8,2-4.8,4.6S311.3,74.3,314,74.3"/>
+		<path d="M271,95.2c0,10.1,6.1,15.6,15.7,15.6c5.7,0,10.6-1.2,15.7-2.6V88l-8.5,0.6v14.1c-1.8,0.5-3.4,0.8-6,0.8c-5,0-8-2.1-8-9
+			V83.3c0-6.9,3-9,8-9c3.7,0,6.2,0.6,9.4,1.4l1.5-6.9c-3.5-1.1-7.1-1.8-12.1-1.8c-9.6,0-15.7,5.6-15.7,15.6V95.2z M243.7,92
+			l4.1-16.5c0.1-0.6,0.4-1,1-1c0.5,0,0.9,0.4,1,1L254,92H243.7z M230.6,110h8.8l2.7-10.8h13.8l2.7,10.8h8.8l-9.4-35.5
+			c-1-3.9-4-7.4-9-7.4c-5.1,0-8,3.4-9.1,7.4L230.6,110z M178.2,110h8.6l1.9-18.8c0.2-2.2,0.4-5.1,0.5-8.1c0.5,2.9,1.1,5.7,1.8,7.9
+			l2.6,9.1c1.1,3.9,3.5,7.3,8.6,7.3c5.1,0,7.4-3.4,8.6-7.3l2.6-8.8c0.6-2.1,1.2-4.9,1.8-7.8c0.1,2.8,0.2,5.5,0.5,7.6l1.9,18.8h8.6
+			l-5-42.2h-9.3l-9.2,31.3c-0.1,0.2-0.2,0.7-0.5,0.7c-0.2,0-0.4-0.4-0.5-0.7l-9.2-31.3h-9.3L178.2,110z M162.4,110h7.1
+			c1,0,1.6-0.6,1.6-1.6V67.8h-8.7V110z"/>
+		<path class="st5" d="M138.4,89.6c0,24.3-19.7,44-44,44s-44-19.7-44-44s19.7-44,44-44S138.4,65.3,138.4,89.6"/>
+		<path class="st10" d="M135.6,74.1h-27.3V47.8c-4.4-1.5-9-2.2-13.9-2.2s-9.5,0.8-13.9,2.2v26.3H53.2c-1.8,4.8-2.8,10-2.8,15.5
+			c0,5.4,1,10.6,2.8,15.5h43.7c-1.3,0.9-2.5,1.8-3.8,2.6c-4.8,3.3-9.3,6.5-14.3,8.6c-4.7,2.1-9.7,3.7-14.9,5
+			c4.4,4.2,9.7,7.6,15.6,9.7c1.7-0.6,3.3-1.3,4.8-2c6.2-2.7,11.5-6.4,16.6-10c9.3-6.5,18.2-12.7,33.6-14h1c1.8-4.8,2.8-10,2.8-15.5
+			C138.4,84.1,137.4,78.9,135.6,74.1"/>
+		<path d="M110.4,109.6l-10.2,6.5c-1.4,0.9-3.2,0.5-4.1-0.9l-1.3-2c-0.9-1.4-0.5-3.2,0.9-4.1l10.2-6.5c1.4-0.9,3.2-0.5,4.1,0.9
+			l1.3,2C112.3,106.9,111.8,108.7,110.4,109.6"/>
+		<path class="st2" d="M108.2,109.7l-1.3,0.8l-3.3-5.2l1.3-0.8c0.7-0.4,1.6-0.2,2.1,0.5l1.7,2.6
+			C109.1,108.4,108.9,109.3,108.2,109.7"/>
+		<path class="st2" d="M99.5,115.3l0.8-0.5l-3.3-5.2l-0.8,0.5c-0.7,0.4-0.9,1.4-0.5,2.1l1.7,2.6C97.9,115.5,98.8,115.7,99.5,115.3"
+			/>
+		<path d="M82.8,68.7V56.6c0-1.7,1.3-3,3-3h2.4c1.7,0,3,1.3,3,3v12.1c0,1.7-1.3,3-3,3h-2.4C84.2,71.7,82.8,70.3,82.8,68.7"/>
+		<path class="st2" d="M83.9,66.7v-1.5h6.1v1.5c0,0.8-0.7,1.5-1.5,1.5h-3.1C84.6,68.2,83.9,67.5,83.9,66.7"/>
+		<path class="st2" d="M83.9,56.5v0.9h6.1v-0.9c0-0.8-0.7-1.5-1.5-1.5h-3.1C84.6,55,83.9,55.7,83.9,56.5"/>
+		<path d="M85.8,102.9h-7.2V92.3h7.2c1.7,0,3,1.3,3,3v4.6C88.8,101.5,87.4,102.9,85.8,102.9"/>
+		<path class="st2" d="M86,101.7h-0.4v-8.3H86c0.8,0,1.5,0.7,1.5,1.5v5.3C87.5,101.1,86.8,101.7,86,101.7"/>
+		<path d="M102.8,77.1h12.1c1.7,0,3,1.3,3,3v2.4c0,1.7-1.3,3-3,3h-12.1c-1.7,0-3-1.3-3-3v-2.4C99.9,78.5,101.2,77.1,102.8,77.1"/>
+		<path class="st2" d="M104.8,78.3h1.5v6.1h-1.5c-0.8,0-1.5-0.7-1.5-1.5v-3.1C103.3,78.9,104,78.3,104.8,78.3"/>
+		<path class="st2" d="M115,78.3h-0.9v6.1h0.9c0.8,0,1.5-0.7,1.5-1.5v-3.1C116.5,78.9,115.8,78.3,115,78.3"/>
+		<path d="M134,101.7h-12.1c-1.7,0-3-1.3-3-3v-2.4c0-1.7,1.3-3,3-3H134c1.7,0,3,1.3,3,3v2.4C137,100.4,135.6,101.7,134,101.7"/>
+		<path class="st2" d="M132,100.6h-1.5v-6.1h1.5c0.8,0,1.5,0.7,1.5,1.5v3.1C133.5,100,132.8,100.6,132,100.6"/>
+		<path class="st2" d="M121.8,100.6h0.9v-6.1h-0.9c-0.8,0-1.5,0.7-1.5,1.5v3.1C120.3,100,121,100.6,121.8,100.6"/>
+	</g>
+	<path class="st3" d="M95.1,50.7h-1.3v-4.5h1.3V50.7z M95.1,62.5h-1.3V55h1.3V62.5z M95.1,74.3h-1.3v-7.5h1.3V74.3z"/>
+	<g class="st1">
+		<path class="st5" d="M94.4,143.4c-7.3,0-14.3-1.4-21-4.2c-6.4-2.7-12.2-6.6-17.1-11.5c-4.9-4.9-8.8-10.7-11.5-17.1
+			c-2.8-6.6-4.2-13.7-4.2-21c0-10.3,2.9-20.4,8.5-29c5.4-8.4,13-15.2,22-19.5l1.1,2.4c-8.6,4.1-15.8,10.5-21,18.6
+			c-5.3,8.2-8.1,17.8-8.1,27.6c0,6.9,1.4,13.6,4,19.9c2.6,6.1,6.3,11.6,11,16.3c4.7,4.7,10.2,8.4,16.3,11c6.3,2.7,13,4,19.9,4
+			s13.6-1.4,19.9-4c6.1-2.6,11.6-6.3,16.3-11c4.7-4.7,8.4-10.2,11-16.3c2.7-6.3,4-13,4-19.9c0-6.9-1.4-13.6-4-19.9
+			c-2.6-6.1-6.3-11.6-11-16.3c-4.7-4.7-10.2-8.4-16.3-11c-6.3-2.7-13-4-19.9-4v-2.6c7.3,0,14.3,1.4,21,4.2
+			c6.4,2.7,12.2,6.6,17.1,11.5c4.9,4.9,8.8,10.7,11.5,17.1c2.8,6.6,4.2,13.7,4.2,21c0,7.3-1.4,14.3-4.2,21
+			c-2.7,6.4-6.6,12.2-11.5,17.1c-4.9,4.9-10.7,8.8-17.1,11.5C108.7,142,101.7,143.4,94.4,143.4"/>
+	</g>
+	<polygon class="st11" points="67.7,35.3 73.7,50 78,39.6 	"/>
+	<g class="st1">
+		<path d="M76.3,92.3H50.5c0.2,3.7,0.9,7.2,2,10.6h23.8V92.3z"/>
+	</g>
+	<rect x="52.1" y="88.4" class="st3" width="84.9" height="1.5"/>
+	<g class="st1">
+		<path class="st5" d="M94.4,45.5c-24.3,0-44,19.7-44,44c0,24.3,19.7,44,44,44s44-19.7,44-44C138.4,65.2,118.7,45.5,94.4,45.5
+			 M94.4,48.1c5.6,0,11,1.1,16.1,3.3c4.9,2.1,9.4,5.1,13.2,8.9c3.8,3.8,6.8,8.2,8.9,13.2c2.2,5.1,3.3,10.5,3.3,16.1
+			c0,5.6-1.1,11-3.3,16.1c-2.1,4.9-5.1,9.4-8.9,13.2c-3.8,3.8-8.2,6.8-13.2,8.9c-5.1,2.2-10.5,3.3-16.1,3.3s-11-1.1-16.1-3.3
+			c-4.9-2.1-9.4-5.1-13.2-8.9c-3.8-3.8-6.8-8.2-8.9-13.2c-2.2-5.1-3.3-10.5-3.3-16.1c0-5.6,1.1-11,3.3-16.1
+			c2.1-4.9,5.1-9.4,8.9-13.2c3.8-3.8,8.2-6.8,13.2-8.9C83.4,49.2,88.8,48.1,94.4,48.1"/>
+	</g>
+</g>
+<g id="Vollfarbig_positiv">
+	<g>
+		<path d="M358.3,98.4c0,6.9,4.5,11.5,13.3,11.5h10.3c1,0,1.6-0.6,1.6-1.6v-5.7h-11.8c-3.6,0-4.8-1.5-4.8-5V92h14.5v-7.2H367v-4.7
+			c0-3.4,1.1-5,4.8-5h11.5v-7.2h-11.7c-8.9,0-13.3,4.6-13.3,11.6V98.4z"/>
+		<path class="st8" d="M325.6,110h8.5V87.6c1.8-1.8,3.5-2.7,5.6-2.7c2.4,0,3.4,1.2,3.4,4.6V110h6.9c1,0,1.6-0.6,1.6-1.6V88.5
+			c0-6.8-3.6-10.8-10.1-10.8c-2.8,0-5.7,1.1-8.3,3.5l-0.3-2.7h-7.2V110z M309.8,110h6.9c1,0,1.6-0.6,1.6-1.6V78.5h-8.5V110z
+			 M314,74.3c2.7,0,4.8-2,4.8-4.6s-2.1-4.6-4.8-4.6c-2.7,0-4.8,2-4.8,4.6S311.3,74.3,314,74.3"/>
+		<path d="M271,95.2c0,10.1,6.1,15.6,15.7,15.6c5.7,0,10.6-1.2,15.7-2.6V88l-8.5,0.6v14.1c-1.8,0.5-3.4,0.8-6,0.8c-5,0-8-2.1-8-9
+			V83.3c0-6.9,3-9,8-9c3.7,0,6.2,0.6,9.4,1.4l1.5-6.9c-3.5-1.1-7.1-1.8-12.1-1.8c-9.6,0-15.7,5.6-15.7,15.6V95.2z M243.7,92
+			l4.1-16.5c0.1-0.6,0.4-1,1-1c0.5,0,0.9,0.4,1,1L254,92H243.7z M230.6,110h8.8l2.7-10.8h13.8l2.7,10.8h8.8l-9.4-35.5
+			c-1-3.9-4-7.4-9-7.4c-5.1,0-8,3.4-9.1,7.4L230.6,110z M178.2,110h8.6l1.9-18.8c0.2-2.2,0.4-5.1,0.5-8.1c0.5,2.9,1.1,5.7,1.8,7.9
+			l2.6,9.1c1.1,3.9,3.5,7.3,8.6,7.3c5.1,0,7.4-3.4,8.6-7.3l2.6-8.8c0.6-2.1,1.2-4.9,1.8-7.8c0.1,2.8,0.2,5.5,0.5,7.6l1.9,18.8h8.6
+			l-5-42.2h-9.3l-9.2,31.3c-0.1,0.2-0.2,0.7-0.5,0.7c-0.2,0-0.4-0.4-0.5-0.7l-9.2-31.3h-9.3L178.2,110z M162.4,110h7.1
+			c1,0,1.6-0.6,1.6-1.6V67.8h-8.7V110z"/>
+		<path class="st8" d="M138.4,89.6c0,24.3-19.7,44-44,44s-44-19.7-44-44s19.7-44,44-44S138.4,65.3,138.4,89.6"/>
+		<path class="st7" d="M135.6,74.1h-27.3V47.8c-4.4-1.5-9-2.2-13.9-2.2s-9.5,0.8-13.9,2.2v26.3H53.2c-1.8,4.8-2.8,10-2.8,15.5
+			c0,5.4,1,10.6,2.8,15.5h43.7c-1.3,0.9-2.5,1.8-3.8,2.6c-4.8,3.3-9.3,6.5-14.3,8.6c-4.7,2.1-9.7,3.7-14.9,5
+			c4.4,4.2,9.7,7.6,15.6,9.7c1.7-0.6,3.3-1.3,4.8-2c6.2-2.7,11.5-6.4,16.6-10c9.3-6.5,18.2-12.7,33.6-14h1c1.8-4.8,2.8-10,2.8-15.5
+			C138.4,84.1,137.4,78.9,135.6,74.1"/>
+		<path d="M110.4,109.6l-10.2,6.5c-1.4,0.9-3.2,0.5-4.1-0.9l-1.3-2c-0.9-1.4-0.5-3.2,0.9-4.1l10.2-6.5c1.4-0.9,3.2-0.5,4.1,0.9
+			l1.3,2C112.3,106.9,111.8,108.7,110.4,109.6"/>
+		<path class="st2" d="M108.2,109.7l-1.3,0.8l-3.3-5.2l1.3-0.8c0.7-0.4,1.6-0.2,2.1,0.5l1.7,2.6
+			C109.1,108.4,108.9,109.3,108.2,109.7"/>
+		<path class="st2" d="M99.5,115.3l0.8-0.5l-3.3-5.2l-0.8,0.5c-0.7,0.4-0.9,1.4-0.5,2.1l1.7,2.6C97.9,115.5,98.8,115.7,99.5,115.3"
+			/>
+		<path d="M82.8,68.7V56.6c0-1.7,1.3-3,3-3h2.4c1.7,0,3,1.3,3,3v12.1c0,1.7-1.3,3-3,3h-2.4C84.2,71.7,82.8,70.3,82.8,68.7"/>
+		<path class="st2" d="M83.9,66.7v-1.5h6.1v1.5c0,0.8-0.7,1.5-1.5,1.5h-3.1C84.6,68.2,83.9,67.5,83.9,66.7"/>
+		<path class="st2" d="M83.9,56.5v0.9h6.1v-0.9c0-0.8-0.7-1.5-1.5-1.5h-3.1C84.6,55,83.9,55.7,83.9,56.5"/>
+		<path d="M85.8,102.9h-7.2V92.3h7.2c1.7,0,3,1.3,3,3v4.6C88.8,101.5,87.4,102.9,85.8,102.9"/>
+		<path class="st2" d="M86,101.7h-0.4v-8.3H86c0.8,0,1.5,0.7,1.5,1.5v5.3C87.5,101.1,86.8,101.7,86,101.7"/>
+		<path d="M102.8,77.1h12.1c1.7,0,3,1.3,3,3v2.4c0,1.7-1.3,3-3,3h-12.1c-1.7,0-3-1.3-3-3v-2.4C99.9,78.5,101.2,77.1,102.8,77.1"/>
+		<path class="st2" d="M104.8,78.3h1.5v6.1h-1.5c-0.8,0-1.5-0.7-1.5-1.5v-3.1C103.3,78.9,104,78.3,104.8,78.3"/>
+		<path class="st2" d="M115,78.3h-0.9v6.1h0.9c0.8,0,1.5-0.7,1.5-1.5v-3.1C116.5,78.9,115.8,78.3,115,78.3"/>
+		<path d="M134,101.7h-12.1c-1.7,0-3-1.3-3-3v-2.4c0-1.7,1.3-3,3-3H134c1.7,0,3,1.3,3,3v2.4C137,100.4,135.6,101.7,134,101.7"/>
+		<path class="st2" d="M132,100.6h-1.5v-6.1h1.5c0.8,0,1.5,0.7,1.5,1.5v3.1C133.5,100,132.8,100.6,132,100.6"/>
+		<path class="st2" d="M121.8,100.6h0.9v-6.1h-0.9c-0.8,0-1.5,0.7-1.5,1.5v3.1C120.3,100,121,100.6,121.8,100.6"/>
+	</g>
+	<path class="st2" d="M95.1,50.7h-1.3v-4.5h1.3V50.7z M95.1,62.5h-1.3V55h1.3V62.5z M95.1,74.3h-1.3v-7.5h1.3V74.3z"/>
+	<g>
+		<path class="st8" d="M94.4,143.4c-7.3,0-14.3-1.4-21-4.2c-6.4-2.7-12.2-6.6-17.1-11.5c-4.9-4.9-8.8-10.7-11.5-17.1
+			c-2.8-6.6-4.2-13.7-4.2-21c0-10.3,2.9-20.4,8.5-29c5.4-8.4,13-15.2,22-19.5l1.1,2.4c-8.6,4.1-15.8,10.5-21,18.6
+			c-5.3,8.2-8.1,17.8-8.1,27.6c0,6.9,1.4,13.6,4,19.9c2.6,6.1,6.3,11.6,11,16.3c4.7,4.7,10.2,8.4,16.3,11c6.3,2.7,13,4,19.9,4
+			s13.6-1.4,19.9-4c6.1-2.6,11.6-6.3,16.3-11c4.7-4.7,8.4-10.2,11-16.3c2.7-6.3,4-13,4-19.9c0-6.9-1.4-13.6-4-19.9
+			c-2.6-6.1-6.3-11.6-11-16.3c-4.7-4.7-10.2-8.4-16.3-11c-6.3-2.7-13-4-19.9-4v-2.6c7.3,0,14.3,1.4,21,4.2
+			c6.4,2.7,12.2,6.6,17.1,11.5c4.9,4.9,8.8,10.7,11.5,17.1c2.8,6.6,4.2,13.7,4.2,21c0,7.3-1.4,14.3-4.2,21
+			c-2.7,6.4-6.6,12.2-11.5,17.1c-4.9,4.9-10.7,8.8-17.1,11.5C108.7,142,101.7,143.4,94.4,143.4"/>
+	</g>
+	<polygon class="st8" points="67.7,35.3 73.7,50 78,39.6 	"/>
+	<g>
+		<path d="M76.3,92.3H50.5c0.2,3.7,0.9,7.2,2,10.6h23.8V92.3z"/>
+	</g>
+	<rect x="52.1" y="88.4" class="st2" width="84.9" height="1.5"/>
+	<g>
+		<path class="st8" d="M94.4,45.5c-24.3,0-44,19.7-44,44c0,24.3,19.7,44,44,44s44-19.7,44-44C138.4,65.2,118.7,45.5,94.4,45.5
+			 M94.4,48.1c5.6,0,11,1.1,16.1,3.3c4.9,2.1,9.4,5.1,13.2,8.9c3.8,3.8,6.8,8.2,8.9,13.2c2.2,5.1,3.3,10.5,3.3,16.1
+			c0,5.6-1.1,11-3.3,16.1c-2.1,4.9-5.1,9.4-8.9,13.2c-3.8,3.8-8.2,6.8-13.2,8.9c-5.1,2.2-10.5,3.3-16.1,3.3s-11-1.1-16.1-3.3
+			c-4.9-2.1-9.4-5.1-13.2-8.9c-3.8-3.8-6.8-8.2-8.9-13.2c-2.2-5.1-3.3-10.5-3.3-16.1c0-5.6,1.1-11,3.3-16.1
+			c2.1-4.9,5.1-9.4,8.9-13.2c3.8-3.8,8.2-6.8,13.2-8.9C83.4,49.2,88.8,48.1,94.4,48.1"/>
+	</g>
+	
+		<image style="display:none;overflow:visible;" width="278" height="203" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARcAAADMCAYAAABZXeeMAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAUBZJREFUeNrsvVdwHFe+5vkrb1Go
+KnhvCYAAHQiCFqBoZbul9ube2ZmevTsRd993522fZl93NuLOzuxE7MTuzO2evqZb3eqWRDlKomhF
+kaIH4b2tQhXKe7cnEzQACdCAAEW18osAq1iZefL8T+b58vufPPmlakvrlh2AHQUKFChYP1zTqtSq
+/1N8OaS0hQIFCtYRh7Vmi/kvLqpUKoVKpVIOrwIF3yC0DofjLy4on88nf6rV6qfaLpfLyaQkfUq4
++/0uUT1u+fMu/1nro8SvxL+R9dOua6+W9qm688mS76onXP6s5T/QUHcb4S4e21jcWb6kwGXf72y3
+2vYP4klOjqWfj6vf48p/1vWV+JX41zN+7SM794Od+aHaPtC5H/xc7ftayeZx5T/QkEsbdE0HM8fy
+z3U4uE97cq7n+kr8SvzPM37tI1WD6tEd+LHL1qI8VGtTKs/j4DzJybRa2Wst76muPA8sV+JX4v8m
+49cuY6bHdd5nTWueQnmsaf0ldVlLWvSsB/NxJ9PjTr6nPRkeJ7M3XEYr8SvxP3bM5UnTlKdNa56W
+jNZr/TuBPxj0elw5nobZn/XgPu5kXEuOr8SvxP+84tc+Uik8Ldk86xjLOiubJzn4K33fKGZfjyvf
+eo7+K/Er8W9k/NqnSmsehNqAzW5Fk4oQiiRIZ3PPlhat+92m5TtcDPrpDtbSdR93cJ75Zts65/hK
+/Er832T8Tzagq8unsqqIPJP+3k8J/yzTsWIOHO8kz3WZzy8PMR9OP1va87RKaDVyutMo0jSX5QdH
+aozFzye5cjztleRpG/9pR++fXfYq8SvxP7/4n+hWdM6ynZ//6x+zpVxHMBQnLQpwX3yb31y10b51
+D07nDJd6xvAKcsktqfxTD/g+LRk9YsxlPa4c653TriUHf5q7D0+boyvxK/FvZPxPpFykD4348/Wd
+5f3zg8zH08Q843hj28hks4JQTFTW1mMryhENeZh0+YirzJSXFWMTakedS+CdmRHkk8FZXk6eLktG
+pFQGnRaSQSZm3MTiKbF9OcUOG3qtmmTYy9Scl5TBSVWxlWwyi8FkQKvJEXRP4/ZHSWVyqyqZpQ2x
+1sbf8NH13J0rW+4BQl3jlfDZZbQSvxL/+sX/6FvRd5XL3UXJAPGIn3AgitsdJmEQJCF+N1Z188NN
+L2Nz2omMnue//rf3mS/YwS9+eIgirRa7LcON9/6B35+e5chPf8Xecg3hnBV7gRN98Bb/+T/+d/rm
+sxx886843FKI2uwg577Ob3/ze8YLj/Krn3WiC0cx2xxCJenoOfH/8psPrzATSD5yhq40/X89R88f
+t3ylW4GPvPKwOBsyx/OZ96DEr8T/PONX3yOVR4xnSB9Z8edoPc6bv/gb/qf/4U02lThlZpKKEVzA
+4NdfcmPEjbl+D7trtvMv3jhAa2mCy59fZsynoePlg5QVF2DQarAWFROb6KF/ykPGWUeb00Lrgbfo
+3tlGeuJrLvZMoC7v4FBzGWV5klrJoygvSs/VITx+aNzciNVmWXnM5RkH1O5+Pm7OwIOj60/yt/Rg
+rKX89R5AVOJX4t/I+J/4bpG0SsI3xdjoAuGQm2AsIROOlC55r3/Chx+dR73bToUgHXNJhSADM3q9
+hi27GjEaIaq1YlXr0KlExX23efuDd7HuzaeuogWrWU11tQ2TSYe+YgubUwZUyRiWojx0Xp1Mbbc/
+/APvfllAfl0NbVYzao3msfNcnjWHXO9bg8966/FZryxK/Er8zzN+7RMNoN75Ghy9xKkPbzDtz5DL
+iJREv/hYk0prQK0yYTHq0WhyJGJJEumsWCdHcH6cW7d7xPIgk/4Qm8T6qURMLMugUatkWZgRf/FE
+mkwmSyIeZKR/gkhOQ3RkkpBtk0wusYj416ARpKJ64rtHT3vffqNl6INXnmc9OZ7kZFbiV+L/puLX
+PsmkN+lDGluxVHXS0VVMaypH1jfM6QGj/Ht+7TZaWjXUt9VgzswzPTJEoKyUvIIyMkEXE8ML5Jeb
+US17xnI5xgdGmGuqp0KTZnpqgoDKjk3KR1V3GE4n116uixxL7uHbzw821EqNtFI+vF4H90mk5LMM
+wK1HfZX4lfifV/xPpFxU6QATY0MiZbFT19AiL8p403w95pN/p8DMzoMd6DV+bn32GRenr7BwIk4i
+d4DNm/fyRmuOTHwad88M7okxBvxuovEUGtc4Q/0w448y2XOSkxY9XR3NvPTKG2RTgmSuzjHpcTMq
+VpLuDiVT/sX9aWaJiO2fdvr/08q+jfbzWG8Z/W3zM1Hi/8uOX/Xqq69+zjrYXBosDqy5CMF4klTm
+fme32O1oVWkioSjpVPaxM2xVFgt2s5ZUIEI0mZbHdR6btj0Qm2QWdfdu0VPJujsj96qlI9mPGJN6
+3n4bG36rVIlfiX/94j+8bn4uiYiPxArjHhG//7Fp11KyyIUj+CKP2N8jxlhWyzcVPw8lfiV+xc9F
+8XNR/EyU+BU/FxQ/F8XPQ4lfiV/xc1mvK8fTMPuzHtynufOwHgOASvxK/IqfyxMqG8XPQ4lfif/b
+6ufytFD8XNb1VuDjr2xK/Er831z82mca81jvtEfxc1H8TJT4v1t+Lus2BvPUVM6a/VykILOSHcQ6
+P4shlbnawbi7TPpcy8ny4PbPe0BOiV+Jfz3j167r3ZpnVR7rVJ5WqyWdTj82p3yS5asNaj3JgNdG
+73891lfiV+LfqPifyM/lRXiD4tOsn5eXhwIFCr5ZaJ9JaTytEtloZaRAgYIXBmqlCRQoUKCQiwIF
+ChRyUaBAwXcb2lVZR63eUL9OBQoUfAfJRSIWnV6HWrXUufsZJdIdJ/5nea/Kk5a5EftSoEDBOpCL
+wWCQO2YikVx1Qs/TwmQykUwmyWQy61b5u2WidaDSGOTfMnEPRvF1vff1IEKh0L25NM8C6ba5NC9H
+gYLvTFqUSqXWjVg2GubiLrSmisVOP/UO5BY2fJ/9/QNUV1djt9vXXMb169dpbGzA4XAoZ6KC7w65
+KHg8/v2//z946aWX1rz90aPHiETCSkMq+IuEcrdIgQIFL45ykcZkpL+7d5OksYdYLPatSaP+EqG3
+2DCpU0SiCdRG673v6YyaPJG6mY0akuEAIem37KMHutV6C3kmNfFIlGQ6gzIsrmDDyUUaeMzPz6e6
+pgaHOGElUtHpdPLg6fT0NC6Xi2g0+kLfpTEajZSUlMhvCAiHwy8kITrLKrAQZd4TJH7nVQq24nLy
+NXHmvQHiyYcHqsvbdrPV7ufipduYN93/HtWUs697F6V5WmZ7zvLV7UkCsUcPdJvKt3Bgi43+ry4z
+7vZxb9hal09FqYN0wMVCOEbqOTWdLq+Y0gIDAZeb8J03fd6FrbgCpyGFS9QzlkgpPfrbmBZJnbK+
+vp5jx4+zd+9eCgoKFufCiL9Nmzbx2muv0dHRIf+ukV61+oJCGoB9/fXX6erqIt9me+a5PPOxJDd8
+YQaDUeKZ9eltW46+xS9/0EVloeXORAAzHa/8gB8c2UaRzbDiNiV1Lexs34wtz7Ts+6aDR+losOL3
+zOOPJnmSGuqL6tncsZ3SfCvLjqS5lq4jr9BRU4T5OR5iU1U7h185SE2RHX1eEZW1lUJZGeS2qWrv
+4pVD7RTZTUpv/jYqF0mxtLS0yKRiEx3yxs2bzM3OykRyu6eH+fl5ednd5V9++SVer/eFVDBzc3N8
+9PHHvPHG68SEyrp06RLhSGRNZQ0GY/T1T3AuEEctUo1/3VzBNtH5dSKR0Ov1sqqT7rpJ7ZdIJIiJ
+7pAn0kmdWiWrptVuZff1ueh8uYFy+1WmXUFS5hYaC83MXBgnHFVRXFEtOpdeXBmyhBfm8ARioq1F
++pKVysvd+66zOinKN5D2DeKZ7qd/PIbFUSG2F9uqxLbexW0N9hKcFgNanZZ0xENKk0UlDp2ltJza
+nIFMOsb83LxoJxc3b14mOusnltbjLCnGbjWizqWRkqeIx4UvHF+iaHQUlBVjEeVKZUvmXTG/h3lf
+iCQmiksKHoojpbYKZVmA1SjWzyZwzbiJzQ1x89IEc6Kdi3e+yS+PVXHr00+5euU6npEeLk2GyRjs
+VJZq8SxIyi6HvaQUczaE1xeRXy2s4AUlF4lEduzYIROH3KkGBmSVUiPSI6kT3RRkExUdVFICra2t
+cgeWOk88Hn8hgx4ZHubM6TN0d3fhD/jp6bm9OF/mKfGfe6c5oMrj1YoiTsz4+fv+afaHp9AuuETb
+1NLc3MzI6KicQkoC6VxcS7nTQbMuw1hvD36/H5PJ+FC57t7beA40sbnOycDULLmtTdi0C1x0xdGW
+t/O91/eQrxMEZjIRGPiCD09+zUpCwly6mdoiQTC2Pew3OfCHJ2jdu5myIjP5hQX4rrzLHz67TsmB
+13htWzU6VYKpax9yISJKU+Wz9/AxtiXU2A0hLrzzDmemi9nT3U34zAJf6qzse/M41VYV2UyOPKGy
++t/9DZ9cG8V79wVWoowDb/yEraVWcuJcUOflEx77knfeO0cof+uKcSw4dvHmW7vJ06TJxVx8/MeP
+mSveRtexUi75T2GrsGMVsezet4fM/CSxtn3sKfLRE6+gUT/JiT9/zrBLw4Hv/ZDSmfOcOHuL2ZBC
+Li8suUgEEhdXXmlSmpTyWPPy5LEViUAqKytxC+Wi1enkdSVC0Wi1D73t8EXD2NgYbW1tlJdXMDoy
+uiZyMQtl1uDMxxT28fNiM38I5/jvv3uboVOfCPJt59Chw7Kqs1qtVFZV8f8lnSwYLfxS42fh4mk8
+Hg9VVZUPFxwdZsgd4GBzE9YbbmqbCslMX8cfUbHvh3soSQ7zD//0GcmKI/yL7x9g861JEitkd4Gh
+r7hdVol5doj3P73EcFComKtevopEaT36Y/bVNWKxDotjp0dvzHH75Ed8ca2XbFPDIsn1nOOjawH2
+vvEq2zpquSUEnklrJq3X0HTwAA0FUT797R8ZVdXys58fE+SkeWg+tzTT26jy8Ol7H+EtPsAbx7YK
+wpui5ODuFeNwV9dQJMjs9MlTjEzOCyXiJ69ci8FsQqsJ0zfiZnuzgRsn3uds3xxtrXqMYtlEv4f6
+zjqq8y/j0TRQZ9czeH6BUEQZh3mhx1wmJyf5+uuv5U+JPLZu3Squ+AGGR0bouX2b8rIyrBYLAfHb
+LZEm9YrfJPJ5UWERnV2anyKphuvXrhEIBtdUzpTfxyc3b3NqaIILLh+NIkXY1drCj370Qw4c6JIV
+3K9+9St+/OMfc1GkioWpCP/j5iq69+8jkkjKqdKKyCXpvTVFwlJJaVk7zU4dk/1ThBKFFIv0Zbbn
+FpFAkJmhOaJhg1Amegy6lQpKksyIlCUVJZGMi1QnRcZYws7d3TRVONHrVOQEG6g1anILfVwdHsPt
+T4i0SjIf9nL5+hBTw1cZFGmQKr8UrcEkkp9FFVBo15IUqZYrEsIzKj6DAdKSTeIDNVCpc/gGv2bY
+Pc3Na0MEA2rK7PXU5BlXjMM9OsCEz8JLh4+zt7lKEI1GpF1yticPLKdEzpXLZglEk6SlMS6VVJ80
+8YFbuPyC9GqK2SZUny4ywYAoO6yIlhdbudxNhfw+n0wsFRUV4opbhdvlorioSB4kla7QN27cYFik
+HKt2mhcA0sD07t27hZKo5OMPP2J2dnbNY0P7ayvItG5jKBLDbtTyvzVV0tL5v6y47n/4D/9h2f8P
+/19/x4hIf1abROfrvy06ejN7ujqx6yY47YkQSptEB86iNZoFIWjEp0EoxBypdE50uMfXt2jLEX58
+tJ6Zniu4fJUUWZaQgTQIf9dLVSorp8EklmowYtJrycQjIv25P0Yk9Wu1wSpSFAsFpUXkmwyyelqp
+JbV6UZJQNXqrSewmQySbJJ5dOY741GU+/jjKzl0vsf/Vt8gFfFx7gsHjHJP0TM3zRpNIAYsKmPn8
+nExcCr4F5CLfGREE8tlnn1EkCKWwsFAeqHS73fIcl6mpqRd2jGUpJCKsFOR46vNTjI2Pi06y9kvb
+v2mp4KXuFmLpDHpx9des52smkkOisyxQv6+VyPVhfKEQmUhEqAgv3Zvb2OTPUWqvQZv1MuMRKrH+
+jqt7bvHz7vfFjrf4n8LiPAyZBaZEOuYoS6LSCmIQCkInKZcl68uMozJRU1GNX1VDS6mBmVsjhEP5
+d8qDiWEXlfvb2NmhJeeooLrYyfAKcWSzKkyFtVTXBSirbkafnmN4pgf/dAX7V4jDWtUk0qgkw1eH
+aa22iFRIhVp1d6+CgEQbpDJaiirKKXSJdFx1P9aBmyO8tOUYjRqRho14RRqZUXr4t4VclpKM9Pdt
+hJSq/PrXv17XMk3ajbkv23ezn0ZbFp8gl2AoJnevr05/hfNIJx0HjqLJZZi8+gW3vB4K3TOM5sJE
+42k08+I7i9917llxTQ8QF+mE59ZN+go6aN99gFDAz1zITHWJg+mQi9Fxn7y+hHTEy/T4LPa2do52
+6OW7TaeuzeATOcbM5BiRUJS+a+fRiLRqS0MFKfH/WCKONCXnQREoqSCNvZbd3YViWZLRL88z65li
+QMSRv1Ic7TvZu7UBh0mkXf4+rk35WcifZ3I0RzCaIDDfS39/Ec0dO4h6RGQLItbsYqwpTx99AxVE
+GWdSpLpJpX9/o1C9+uqrn4vPQ8s6ywY+wbwRZZrLv7/swUVdbmHDn4q+fPlrfv/7363Ls0VP/eCi
+Sk9+vgWV2DacSpF+qk0tmNQJEklBQiaRlogUVpqFm32gfH0uLco1kZevIRoVaiG1vC21zhqq7Qah
+1rKoSnfx+u5Cbrz/DheHpkTac7ecQn78P/8rqjwXefuLXryBgLzfe9OBVolDb87HYoJwMPzQfu9t
+Z9OLesVWXq7gRcBh5cHFbyOEAgj4k2vcNMLdofZMJLpq+YulRxB8sCJ0jio6ulopzZdGZtLM3jzH
+jTnPfWKRkcI1OUEu5CUeDd5TRo+LIxkNiL/HxB9QdMlfZFqkQEFs+Cy/E396i5m0UD/Z9AoKIhfg
+7Lu/UxpLIRcFTwvJj+VZIE2i0+m+3YcgGYkqJ4KCb5ZcNuJRgLtlSu5z937LJMipNv6xA8lB7t/9
+u//9mctpbm5SzkIF3y1yWe8ZtnffI7ueDzXeLTOxcGH572If672vB9Haulk5exQoWAu5SA/dPQ8z
+7Y0oUzHoVqDgBSaXxJ1nidYLikH36umVYtCt4DtFLt8mKAbdChQo5PIXBcWgW4GC1aEYdCtQoEBR
+Lt9F6HR61GoVmUxK/GVRxqgVKOTyguLbYNAtQWPOp6TQSWlRsSAYNfF4gIBrillPmETqu2pSoqOo
+ohRjOoB74YF2+IbMwxUo5HIPdw26x8fHuXD+vGx69Sy3rCWCikQi8pwae37+PUe+Z0tWLdTuOMj3
+utvQpWJEpKebjSaiA5/w3tle5vzJb/y0KaooE53cf6eTPyc5pTKz/eAhSv1X+eTcMNniwvt1kM3D
+9xK68gHn+iYIKOSikMvzxnoadEs2lZfF9j6/T751v2tXJyXFxfIbEVYy6M5mMhhNJpmIHmXQrXO2
+cezANgxzV/nte2eY8obQ55dQbIoRSJoorSjBIMrWatJ4ZrxobXZsVhNakT4lwwvMefxkjU6KrDkW
+JMPqjJGyUjvpYBBdnpVM2MtCKImlqJQ8TYJ5T4CMwUFRnljfG8Fsd5IvlUcSn8uFP5Ilv1Qy2tah
+FyoqGtZx/Gc/pCp+k5Onr3BtaB6NpYDCfCt6bY7IghuPP0Iyc590NNYCSp0WEbtW9o9R3TH9DsWT
+mBzFFNrzxLZqMokQcy6v/JoQi7OEArtV9spJCEXiWogzcvM605E5YtpSvvfTn1OfWKzD9VGvbB4e
+c2exl1Sg8XoJxOJkTA7KCkyEPV5B0gkUznmO6ruxsfFX4rN2eZ6vk+eIrOcktI0sU5fXjFq3aB6e
+DPahIfbIfUkpUTKRpLNzl6w6FhYWnnpOzMzMrGyaJZHIpqYmZqanZOMsyYDq+vVr8jwYKQWTbEAj
+gkgCAT+Dg4NEYzHZAlRy7fvzn/8sP1skzddZirJdL7F7k55zJz5neNojWxFkEhGC4QRp0zZ++tdv
+cWhPB00NTryjC9Tv7mb3ru1s3bWPnXVmJsenoe4wPz5Uw9zMDP5sE7/8F9+nXHTc1qPH2GT0Me3O
+0fnmz3ltVzHjY1OY247z/T3FokNa2X34KB3bW+no3IYz5WFqXsWBH/2MV7r3sq2pTpBYAXW1ZTiL
+ysjTJxhxp9jc9TKHRR227NpFgz3F9IybUOy+f21e28v88kfH2bV9C5uat7GvoxH1/DSumJbtR77P
+K/u309zcRvu2apI+QU4B2PnKj3jtwHb51TXFKlEPUeedr36PHfYYc+oatjQ3UFa8WIdhn4NDx/dR
+FDeyW3w6I25mvH70Lcf42WtbiYjjIxGeQi7PDf/tOzugux4G3RKxVNdUExKKoFWUNTExwe9+9zvO
+n7+wokH3sCAXafawlJoNDg2tatBdVmLHGPfiSsa46+1nsjkw5eKEhOoxaA2ovD188MFpemejVPRc
+YuhKDEvrMd7aV0WhxUJEJRSCYdEfV7opqFUL1YGP+VCWzbW12EZKqbJZcZRV4jA5KWkoIOMdpmJb
+By0lOT7/9FPs24/T2b6Fi0NXZKNtvWaeTz/8gKt9WYyNJeSmr/H+yQsEnIfpbClh6tSnjNm28/Le
+dkovD+HyRu8ZNmmFYjHojfhufbrM9HuyoIw9zUUMff6PfH47zUt//Vcc3N/KtH+BRqHQIsOn+Pza
+CO55L/6oUDcGLWajjuRov4ilDevcYh1ckbZF8/DMlCCsOup3VHN52kv91hrM/l58kTCKVbeSFm04
+lhp0f3Fq7Qbd0rjNZyc/wykNvJaW4nQ6ZcKSvktvRZBSsL/5m7+RFdTf/d3fySnTvn375GW9vX2r
+eg2nEmkyaiN6tUaeKyBdbWt3dtGSG+bcsFb2T+m/eJWpSZfoMFYSGQs7O7ZRVl2JTR+7b1eZW+p5
+uYihES/Nu8up7dRjTIgOmyqkrnQrVU4Nty8vYN2lEamPjT17u8noDaRiSaTX/shG272XGJ6aJpCy
+if1mySRDJIU6qSxxYBFEW7N7L0VJPTmhsnJio6WmnyrVUtPvKQZn91JXIQiuqRJDZpZbcxECIQ+z
+C1Ha64rQqnroF6S/v/0gRx2FnDn7FaHRpepSpDxL6iCNyy+ahwe42e+ick8DReUqmot0jJwfEcox
+ovR2hVw2Futp0L1lyxbaWltlBZLN5mhv38krr7y64roPGnT/p//7P9E/MLDiJLrJMRfRHW1sKhNq
+YHaBoCAbe3kV1SofV6YWH8YUQgCpv+oc23jzJ4fRzNxkxLVAWZFRdvTPyR1a8p9VkW8zo9dq5N/m
+h8fwd3axs82O78x73M51Ur1nKw71GKOBDNVpLenEAv09fcwHo6TDc3j9i2NDGo1REMbi1CgVOdm+
+WzL1lvkrHWeq7zYT3iCpVJgRj3+ZUljN9DsVT5Kz6TGLXzXidJTGdEQBovQYlz/+gJCvk5cOdfGD
+4+B/+8by8d0ldViK2ds9eHYcY8+BPRSqJzg1FyaoeEsp5LLRWE+DbukNk5ICSomUaj3f1bQw3Mf4
+ZB07unazIDrkzHyIAquBXDArSGyRXO7SoclZINKNJINTHsKF5aL/6rAX2JjIpslZyqitaaClbiuF
+BWY8qpwQDyJdCXbRUJ7mxsgcwyL9ajxeTbh3hEhojt7+CVrKqoUiiBP0+UjlhHK5o0Gyudyd/aYI
+x9Jo8hxUlBZwa3yY2a0lGMW6sYCPsOCih72jxJZqM7WVkul39T3T71vTYape3kVb7SaRZ5ZS69Th
+nZ4hns2jqcVIZmGUIdcW8kxauNO+i/VILquD26293y6BPoZd3RzrqMB34ROC/oAy1qKQy8ZjIwy6
+dSIlWFdE+jl5ykqmeyedB48svrAnl2Fm2E8sqr1nki3N5QgN3aK/10lT+25S4SDzs2Gqa0u4cXWK
+4XE7bZ37iftDzI4NC1KR5n94GRoaokDIit6I+F18H6k2ELw2RjAUJ/TVab5yHGV7xz42q1XEXbf4
+08e9uKenILhAXGKNXIDeW32UtLfQvi3G+CcXOXfRwr7tOzjU0kE24eLkn/wMxmL3O7XssSOlTnso
+yGRJ3TH9drsHuVxopXNLB0c6NWQCU3xx+hbuYDHb9++lsdyOJhuj7+tbsrnWvXqkfMvrcD64pF2S
+Qnn1U2kKMX51QqRbimz5JqAYdK8Rz8WgW6WnoLgAs1ZNJOghEEmw4rvuxXoWs5pEQsRsMGHKJUjE
+00LlWLDl54hG4/LLxJ5qsDo/H4sqTViakLbKu5YlI229SF9iIrWR30+mF/uzaIiGHzb0Luj8Cf/6
+lXLO/uPb9M/7ZSf/TCq9rKyHTLmfwIj8wTooeGGgGHS/0BBphtc1i/cJ1rs3VSd934D7UQbbj0NS
+bPi4671spL2sGmJ/q2yUCriZGE7LpBIORMisVFb04bgeZ0T+YB0UKGmRgu8YggOn+ecBpR0UclHw
+RFAMuhUoeAHIRTHoXhmKQbeC7xy5KAbdj4Zi0K1AwRrJRTHoVqBAwYaQi2LQ/WgoBt0KFKyRXL5N
+UAy6FShQyOUvCopBtwIFq0Mx6FagQIGiXL5rkAbV1eRIpTPyw3orQW+xYVKniEQTpL9F89+N1nzZ
+PY9UnEAgRFLEqAy/K+Tyrca3wqBbl0dJaQGVJQXoVBn8Xhfj0x7Z+vFBlLftZqvdz8VLt3H7oi8w
+Uy4x0E6baN3dRWt1Ifqkj+sXL3B73E0svf7HwlZcgdOQwuX2LW8/xdBbSYvWG3cNuru6usi32eT5
+MM8CyWluYGCAkZER4vH4utTRVNnBmz//BYcOddO57zCvHdpBod284roldS3s3NGCLc/0Yje8bKD9
+Ch01Rdga9tO9bysZfwh7wza6d1bhtG7Mda6qvYtXDrVTZDeRV1ROTVUxJoNuWX3MGoUIFOWyDlhP
+g+6hoWGGhoeZGB9jzuXil7/4Jdu3b5fTmZUMumOxmHzrWfr9UQbdVc0NFBl8vPuP79A7EqbAqSEQ
+iqKxOCgptGPWi8OWjeOecYvPNLmcmpKySnJ6J+nIAr6UjjxDFq/HR1JtpazIStI7jy+awV5aCOEQ
+Kks+VstyU++0wS6baGu1OrSZCPMRlWzUrdcuuk+pVFlCQh0ZRG8MeryEYhoKywvRJBdkf1qjoxQL
+EUJJvSDxPIyinqk7ZScjLtlAOzrrR1dvQacNc3tiHG1NKSlPiHjygbbQ5lFaYhf71op1NahVafzu
+OXzhODnTknbIxFmYcxOIJVBbnPLvRp2GbCLAjGuB2aEeLk2GxXIdO7//U47Uxfns5Bmu3vLRI+oT
+mY1gKarAFPexEIiRzAhlW+4kE/Tij8RJK7namqEYdD+DQbfkYldaXMzBl17i3LnzDAuiCYuO29vb
+u6JB9wcffCCbeEupWE9PD3/+87srGnSbCxtobizHHAkSjfpw+aTXdxio23OMH7zxEluaxPKGQrzj
+UxgqN9NYVUVVdS2b2/fRXmciaG3j5a56fFPTpMv28cufvUxpcIJJv5WjP3uDkniYqh17aW9fbuqd
+qenmFz86zp72bTQUa3BrK9nb2cH2ts207+nm4P5taAIG9h3rxOCVzLUrefOvf0xHcYSx6QBbXv4R
+u4t0mKp3CGWyg7atu2ivz8cj6rEgTrHX33qJosA4C9oyWmrM6Cz11Jl9nDt/kylPeLmhk3W7bETe
+3bGdpoZmdu3fSVHOw+RsjJL2I7z5ygFam5vY0d6GPemXDbVKd73CD1/dR2tTE3XFMD7poqLzNY5v
+czLm0rF5SzPVpSUU5GmZm7dw4MhuCgIeGg69zPaSFFMz88T1Lfzo58exBWaY9QZIKuSyVigG3c9i
+0F1eXkZ9Qz2uORf/6l/+S7788oJs0H3zZs+KBt3/8T/+J5l83nzzTVnRrGbQPSmuqDcqbXR2v0F5
+XTVfnLnA7blijuxuRTf1Nb8/cRa/SkNSqJk2yWJSXNnHT3/C9Wwbr71UiebqNCp9FbVWB47GMswm
+JxV1duypcoqNGb7yx/Bfv8SNiw+Yet8x0fbe/pwPz19lwpdm+oYerbmUQ299n02BWUYGBzG21lFd
+kcegs448i5my6ios9jS1hQY8Ew469tcTH/6ckxMFHH+5nW1Fl5mJqRcNtPUa2Z4TobasVgNqod7y
+HEItzWpJL1Mv0vpiuecmH564hqPrexzZuZPi8RK6d7eQ6T/Fb7/ooezwz/n+wX30TEWoahQKJDTM
+yVPXmRDt7hNqqkKrx2g2oU4MMjrfQZN1lhPvf0afp4aXRH0M+ghDc1EObWoTafKYUFVtOA1hvhRt
+G8koDKGkRU+J9TLovnnzFmazmbq6OiorKygoKGDLlq1s2tS0skF3SQl//dd/xS6hmP7ht/+4qkE3
+kTFOvv027rluurp28+YbepLXwWZWMXZ9UMh3oYTunviSu7+/l4uDYwwl88SV3oZ6bghPuILymkaq
+awwsuAOUFNXQaqtBLdZ1JyIkKHvY1PuOifZXVweYnPbJ5kwhnOzo3k+9NcaVd08y4JpGPb+Xg1X1
+dBirSLo9JMoKKGu2U6AOc91oo0GkVfl1e+guTWMgSUKkNDn1XQPtu7JTzfiNHtJNjbx87AjJ+Alu
+DM2RWJKH5EQNBr66wfTcCKODs+wSas7ZaBLtkOJS/zRBcdyiQjGFd1Tj1KcZ6xuh9sA2Dh938uXp
+s1wNjcqp3B0rP9JCMWZFGhVNxmV707v1Gbg5yLaWvdQUVpC3uZDo2AVCAcUaUyGXp8R6GnS3t+9g
+Z3s7vX29jI6O8W//7f9KU9PKTzk/aNB99MhRsc3oipPodCJNUqfD3Dr3HkGdk18cFZ0qKdRIKosh
+z4hGHoOQngBffvrnhArISkpG5RZpQJC9m7diN7l47zO3iLmK7VUOJj8QKs3QwJs/eelhU+/sIsFo
+VXdsuLVWKtqPcrjFwfSlP3N5fE72xx0Z8dB1uIU2p4Yv/3iBnHm7IKoSNOMniYXyyYjO7J0aoHdC
+pBmpOK4Jj1ABpcuDFPuJz13hj6Pj/PCn3+elnTXMuheYWlhKuCoMVjVqrQqrWSfaJCYUZoJ0zorB
+KNpAo8Ks14k0OCuIQ8X015/zcWyBXd0v8doPjhH0v41mWWnSn4oH73mrZnqZ9OykqfMghSIdPP25
+W1xwFAsqhVyeEutp0C2pEkkBxWJR9HrDuj2FXdzURpk6IYgnRl6+mUwkQGC8n7HaAjbt2MLmpBp/
+MsX0yIRsTStz473XiSx+jAy52bOlkaz7KnPDU8y311OljXBqOkLK2LSiqfesWnungMVCdIVbefXA
+FvJTfSJN0OIsq0HnnsE7Mkbw0BYq04LE3H3EvG0cqdHRf2oc940cE6211BnTskvcQiRFRrrPq15W
+PSRPSkdJKRUzC3jDYYoNebLJOSSWpUbO6hpq/VDdVkx6+jazt9xMVR1lU0s93qwOm0j3sp4pPLEc
+lU31YnMvVwbcVLYb0AsCkzOwOyFFJJtQVR4VFWW4k/rFZfKfl57BOba93Ilm4UsGhWoJK7JFIZe1
+3C1ab4Nuk8m8vmlbfhlbtzbiNGplq8fJq2eY9N1m/IIWXdcO9hw6Ti46x8ceoQjmZxglTDSelrwk
+mZ6YJBCN45kfYmjAiXp8kGBohoHhIUy+EGPBEB7/yqbeY5MhJkdTshWl1LdMDgNBQSYui4Ptu4XS
+USfp/ew9vhocZ2hkgIx6Er8ghvDgMJUmLzfHQoTj85w+fxHD/u3sO7xZ1D/GrZPvEpy+b6AdZZ7J
+EbGHks0c3ObAqknQd2WAQCi2XIkJleFo2CHSqy1kU34un72Od9bF2Us2Dndu5cDx7WTTQa5+cZo5
+T4ztO/ezraEMsyaLt/8K4/4AdlH/0dxi+8z03qa/uJ0dO7fikQakRX38d4zOJ273019pRTV5k2Ag
+pDDDOkAx6F4jNtqgWzKeLrDnkQh7CITj98yn75pgp8MRYqnM2scFVjH1XrdJvnfMtdMivlgqtWo9
+zfn5aKOCcB404Lbt4W//zVECZ/+Jz0fm8PsTJFPpe+WsZgYulWdUxQiFk6TSK1XLgtmQIxGLk04r
+8mQDoRh0v6iQUorZ6MPu2o8ywX4qrGrqvU54AnNtCdHVHMQzQSYnR4n5YkQXIsQzT9YOUnnRR1Yr
+QkQZTlHSIgXfYUR6ef+fe5V2UMjluwnFoFuBgheAXBSD7pWhGHQr+M6Ri2LQ/WgoBt0KFKyRXBSD
+bgUKFGwIuSgG3Y+GYtCtQMEayeXbBMWgW4EChVz+oqAYdCtQsDoUg24FChQoykXB6lhq1K02WpeY
+dqvJE6mb2aghGQ4Qkn7LPnqgW623kGdSE49EFeNsBYpyeVJIlgs1NTXYbLZ1v92+XnCWVVBV5pDt
+Gu/CVlwufnNi1K98e10y6j64rw2nzbjsu7Wwln2Hj/HKy8fZ1VyKxfD4mE3lWzjQvZdKp22ZZYFs
+al1VS4nNJNmxvHCQzLhr73rkKlDI5XljvQ264+ks3niSQCJFZp1ufW85+ha//EEXlYUWFmtnpuOV
+H/CDI9soshlW3EY26m7fLBt1L/2+6eBROhqs+D3z+KPJJ3rQUV9Uz+aO7ZTmW5eTywtmaq3JK6Ky
+tlKoLIPcTkvNuBUoadFzx3oadM/Hknw97caVyCKV0FVqp1p0aM0qhJXMZGVDbPVjCK2vz0Xnyw2U
+268y7QqSMrfQWGhm5sI44aiK4opq0aEkP5Is4YU5PIEYuZxIX7KLjmt3v+usToryDaR9g3im++kf
+j2FxVIjtxbYqsa13cVuDvQSnxYBWpyUd8ZDSZGWfGEtpObU5A5l0jPm5edFO9022Y2k9zpJi7FYj
+6lwaKXmKeFyygfb913ToKCgrFkSkQavXIs1pjHjdYp8RUioLJSUFWE06cqkI7jkPEUHQVmcJBXar
+UEY5UhnxF/bg8cUxF0j7WmIo7o1QtPNV/vpYFbc+/ZSrV67jGVk0445gpaLSLAh1gaggfoOjhEJT
+Bo/XTzyRVnq9Qi4bh5HhYc6cPkN3dxf+gJ+enttr8tC9MOfHoRmnvtDBJ4GEuHrmcApJnr+KLB8P
+xTFoVJSYDeJzddHo7r2N50ATm+ucDEzNktvahE27wEVXHG15O997fQ/5uhx6k4nAwBd8ePJrVhIS
+5tLN1BYJgrHtYb/JgT88QevezZQVmckvLMB35V3+8Nl1Sg68xmvbqtGpEkxd+5ALEVGaKp+9Ip3a
+llBjN4S48M47nJkuZk93N+EzC3yps7LvzeNUW1VkBQnkCZXV/+5v+OTaKN67fk+ijP1v/IQtYhkZ
+0cmddjyXT/D2p9eIF+zi9Ve3YTcasOrDnPnzu1yeitN57C121VgFoQkiznOQ6H2f358cpW7fYdqq
+CrDYCzH6bvBPf/iKqgq7ICcHu/ftITM/SaxtH3uKfHw8YKC7zcLFE+9xbWiepu7XOeR08acPzjLu
+Ciq9XkmLNhaSQffCgk826Dab1iajzbksDaLDmMI+fir6jyWbI/mIwdIBX4TzMz6heBKrvkFRRnSY
+IXcAZ3MT1vwitjYVkpkexB9Rse/oHkqSw/zxN/+FX5/owbb5AJtLizGtIIYCQ19xWyirmf7z/OkP
+H9DnGuLG1bP86Y/vcHnET3Fdo+wnrNXp0Rtz9J75iPfO9DIfXmQHd8853v79e/T4TWzrqMVhN8sm
+29K4T9PBAzQURDn99m/49Z/O4QlnBTlpeLAaWr0OsyXGlY/f5/RNF46GWiy2EvYe2Ukpk5w7+RnT
+GQcdW0qp7jjKjkZBqKff5v/5r+8wMB8VdTOgVmeZ7LnEB3/6Ix9cGiVbVEWhOcPQiJugUFPnT7zP
+mb45YrlFM+7w5DihnFOQkR17fhVbah0EpwT5hCNKj1fIZWOx1KD7+rW1G3THI2EGhwa5PDnDgJD6
+DqNedL7VByMKjDo2Oy1C8qvIPGp4Jpek99YUCUslpWXtNDt1TPZPEUoUUizSl9meW0QCQWaG5oiG
+DUKZ6FlZLCVFKiZSllSURDIuUp0UGWMJO3d301ThRK9Tyd65aqGicgt9XB0ew+1PyO9Bkoy6L18f
+Ymr4KoMiDVLll6I1mO6ZWhfatSRFquWKhPCMis9ggHQu9xC5aER6E+z7kt7JEXrGPYRFCpnTlFJo
+NKLPa2Bf124cQoXFkyoKCuzoEtPcmosQ9I0xKaUxUkNp1SQyFrZ0CAXWLBmKa2R/yrTIv3LZLIFo
+cvFVtnfNuKO36RWqsrCxmvLtuynRhbk9Kr2HSLHzV9KiDcR6GnRvqiylpn0377uDlItO31oiZLpu
+dXLZW/bks3l9/bdFR29mT1cndt0Epz0RQmmT6MAiXTCaBSFoxKd0VZfeJZ1bNNd+DIq2HOHHR+uZ
+6bmCy1dJkWUJGUgDInfGguSychpMYqkGIya9lkw8ItKf++MVUl9WG6wiLbFQUFpEvslA4mHv6yWn
+mYpUUlCTxAFalbyrmF8QSe84wViSyNwouZY2UQ8jdosFe6GGgjwj2qjYunArr72x72FD8UfE2ntz
+mr1vNNG9vxDN5CmZ/BSPKIVcNhTradDd7BAKqKaIY1WF8iDtM954ekC8DNEztUD9vlYi14fxhUJk
+IhGhIrx0b25jkz9Hqb0GbdbLjEf0wPr7RtS5B0y7c3dsqAuL8zBkFpjyeHCUJUUnt8gdWCcpl6Um
+37JNvomaimr8qhpaSg3M3BohHMq/Ux5MDLuo3N/Gzg4tOUcF1cVOhleJRUoBc8tiG6N/apayWh3J
+RASfSBfJpVmYGmO+bT972jupwUZTTRm5fhVGZ8GKhuIT8QSpjJaiinIKXfPIL4a8E0do6BZz0TZ2
+NWj46tMRAgElJVLIZYOxEQbdGrVqQ+rad7OfRlsWnyCXYCgmd9CvTn+F80gnHQeOosllmLz6Bbe8
+HgqXGFFrlph269yzTBIgLlIIz62b9BV00L77AKGAn7mQmeoSB9MhF6PjvkWTbymxiHiZHp/F3tbO
+0Q69fLfp1LUZfOHsPZPtvmvn0Yi0aktDBSnx/1gijmRlu1wEpnBPT0FwgXg6QzrkZnJaKBahgr76
+4pxQZPto33eYXSIy161P+OTi11z40sDurfUUJ0VqJMhDJ7YLDd6kv9j8kKH4zdOj9Pc7aO7YQdQj
+olwQcWcX484lR+nt78McUXN5IojyppDnD8Wge43YaIPuRx+1RfNrldg2/KCx9WM3tWBSJ0gkBQmZ
+RHqVSMizcLMPlK8XSiItEqO8fA3R6HITbPmq5Kyh2m5Ao8qiKt3F67sLufH+O1wcmiLyFGJQNuhO
+x4iI1CijLqChRvxfKKlMtpzj39tF8OqHfHSpH09Ms7KheE60hU0v6hh7qI4KvlEoBt3fSjyh+fXK
+m943485EoquWv1h6hNX8s3WOKjq6WinNl0Zm0szePMcNaa7KU2aZywy6TYVCheylviRfTnHCszc4
+0zPFQlQijcwqhuKiLQKKLFHSIgV/MYgNn+V34k9vMZMW6iebXgfVEOnnxD/3oxfqSp0WiiqbVl6p
+qpDLdxOKQbfQDZHo+peZVAZfFXJ5GjmuGHSvCMWgW8F3jlwUg+5HQzHoVqBgjeSiGHQrUKBgQ8hF
+Meh+NBSDbgUK1kgu3yYoBt0KFCjk8hcFxaBbgYLVoRh0K1CgQFEu30XodHrUkkVDJiX+sihj1AoU
+cnlBIVkulJSU4PP5CIfD8u3sFxEacz4lhU5Ki4oFwaiJxwMEXFPMesIkUsq81Uczcj4VpQ7SARcL
+4RhKcynk8lxw16B7fHycC+fP4w8EnumWtXRXSvqTbn9LxLUu84PUFmp3HOR73W3oUjEi0tPNRhPR
+gU9472wvc/7kN37aFFWUYUz7cS9IZJd7seojG4nvJXTlA871TRBQyEUhl+eB9TTolpRPf3+/XA4i
+damvr8fpcK5KMNKta82dCX6PvPA62zh2YBuGuav89r0zTHlD6PNLKDbFCCRNlFaUYNDp0GrSeGa8
+aG12bEvNqz1+skYnRdYcCwsB4hkjZaV20sEgujwrmbCXhVASS1EpeZoE854AGYODojyxvjeC2e4k
+XyqPJD6XC38kS35pMRaxT71QUdGwjuM/+yFV8ZucPH1F9qnVWAoozLei1+aILLjx+CMkl9jtaayF
+lDpMom206LSiDdIRcSw8RBMpzM6Sh7fVWCkpdmI16siJdsvlUnhc88TVVoqL8mUDK1U2wcKci7C6
+lOM//SX1icX6XB/1ykbisdmIiLECU9zHQiAm6iNUa7mTTFBypYuTVlJMhVzWG+tl0D00NITLNUdV
+ZRXeBa9sUmTeYsZsNq+4/vz8vPwsUX6+XZ6kuBqKWxuxmyKcPXcDjyAWWSEJiT8lPUBs6+QXPzlK
+Tb6RWGScj/75DAUde9m01Lz67ZP4K17iBztzfHDic0aDDXzvp4cJXvgcy6495Po/5YMv52l/7Sd0
+OOb4h3/+hFTjUd5oDHPqopvW3Z2U50tWBlpGvnifjy4tcOCNn7C93I4qHuTGjQXKLFbsxZ3s2ZVk
+PDhA/e4jdFTYMQiSiAye5t1PLglSjN4zibI0dvOjVzZjVWdJ5EwUauf50z++zbWZBDsOv/7AtleI
+l+3mrZd3ivUzZDN6HLYIJ/7+bUZ0TRw53EqB2URBgZYb777NuVA9DpOoT8md+gilt6d7J5EzJ9Ht
+6iLP+xXvfnYdd6aJ1354gDkR07necUKKQ8OGQjHofgaDbmm8prysjFg8htPpFP/PPHLi3uzsDH1C
+6QSFgnjUWE9ZiR1j3IsrGSN+5zeTzYEzz4ROKB+D1oDK28MHfzxBz6yL4QfNqy0WdCqhEAw62R9X
+OsxatVAd+JgPZSmqrcVWvJUqmxVHWaXomE62NhSQ8bqo2LaTlpIcX5/7lCszWTa1b8HusKLTi+01
+85z+8B0+/+wUY/4g8wPnef/kBQL2bXS2lDDz9Vk+vzyLfXO7UCkOltKn5NFiEKldbPIKf3r/PNNJ
+J02FFoqaD6ywbR2Hu3dQGOnjD7/+L7xzboBoTiuUjYZsYJyvz5zgj3/8kNGAhprGItSuYRHX/fq4
+BKlJRuIGfYSRuSiO2jZBlPlUdLThNIQZC0VR7HQV5bIhWGrQ/cWptRt0SyRx48ZN+X0/RUXFlJSU
+PVKRWK15OAsK5NToUeM8qUSajNqIXq2R2V+iodqdXbTkhjk3rJX9U/ovXmVq0kUKq2xevbNjG2XV
+knl17L5dZW6p5+UdtTXipXl3ObWdeowJkR6kCqkrFUTj1HD78gLWXRqR+tjYs7ebjN5AKpYkLfne
+qnP4ei8xPDVNIGUT+82SSYZIxlJUljiw6PXU7N5LUVJPLhERqUz2AbNutTy58eyXt5kYBs/BzeLk
+y1Fd9vC2pPPJF206fbVXNiKf75shcKBUbgdVOoaxZCdtFeVUOPJIzUrtkSCzpD4Sb981Eh+4Oci2
+lr3UFFaQt7mQ6NgFQoGAYuWgkMv6Yz0NupuaNtHa2sb09LRIdfKpr6+Ty199/Sd7AnpyzEV0Rxub
+ykqYml0gKMjGXl5FtcrHlanFhzE1WqnDS6ZN23jzJ4dXNK+WxnYkb998m1m+6ku/zQ+P4e/sYmeb
+Hd+Z97id66R6z1Yc6jGhBDJUp7WkEwv09/QxH4ySDs/h9S8+5qDRGEVHXhS70juaJPtuyThY5q90
+nKk+QRzeIKlUmBGPXxDQAxDraqU6CT0mKTd5Ox7edtSjZrNYaM6ziwuBA42zQB5jIadjy+HXOLBJ
+y62vRvFWl2NddBNfVp9lu5zpZdKzk6bOgxQWazj9uVtcTBRzKYVcNgDradAtpVTbt29n69atckdW
+rZND98JwH+OTdezo2s1CTsPMfIgCq4FcMCs65SK53KVD02rm1dk0OUsZtTUNtNRtpbDAjEeVI+cd
+whXsoqE8zY2ROYZF+tV4vJpw7wiR0By9/RO0lFULFRAn6PORygnlckeD3DfaThGOpdHkOagoLeDW
++DCzW0swinVjAR9hwUUre0fddQFXw50yxwf7mW16cFs/43NeurftpdNQj7WykWKHUCQ5ozh+RlLe
+QTy+MKWJLFqLlTxDjnj8fn3cbu2SvXnpGZxj28udaBa+ZFColrAiW54LNI2Njb+SVPeyuxVC2ktj
+B+v5VPFGlqnLa0YtpLw88BnsE9ev2Kr7ku7w3LhxQx5cfZY5LjMzs/zsZz+jtrZ2zcTy93//9+JK
+nZQfwFyeF3mZCaQwFZSzpa2FlqYWCnRZ5kZvMzCdxOEw4JsaFFfkECFfCruzkE0tjRRqokTiYNNF
+GRhbwGh20iJ+NycjRMI+JgZui23cpK3FIiWa43LfIFM+KLapGL96heFZH57JeZG/FdG8rZXWlmZq
+HGLZpCjLYSe9MC7SIukOT5SU3k5h2Saq7TlGb1/BFdNR1bKFzZtbaKzNxzM+iS8UvZd+6PKKKbam
+mRwYxhtKUFBeQHRmjPGRPkGg1ge2HaF/LIDaVkBlmY14JE2eNcPQjatMBNU4KpporBHbh0T6ZbYR
+nRxkOqLBVrJYn/G5GLY8zb02mg+KtNWmY7b3sih3jlhKuU30HPDfFIPuNeK5GHSr9BQUF2DWqokE
+PQQiCfl9QSutt5J5dTZrwZafIxqNCxJ7OiLVizTPokoLMo6RSq+8rd6cj14QeSyelOslmX/bLBqi
+4chTm2U/uK1TKK58gxZ1NkNFxzF2lQZ47+2PGZryCrVy31jcZDbLT/CnxbF+sD4KvlEoBt0vNESq
+4HXNCmH/+PVWNq9e3WD7cUgGHv8SsWR0+TqS+fdavbIf3NZR1cyBtnrsJnGKZsL0nDmLy+OTldBS
+a81INLpqfRQoYy4KFDyE4bMnGD53X5Gl04oUUcjlOwTFoHvjlVtE8epWyOWx54li0L0iFINuBd85
+clEMuh8NxaBbgYI1koti0K1AgYINIRfFoPvRUAy6FShYI7l8m6AYdCtQoJDLXxQUg24FClaHYtCt
+QIECRbl81yANqqvJkUpn5IcGV4LeYsOkThGJSlPgvz0TzYzWfNk9j1ScQCAkT+VXht8VcvlW41th
+0K3Lo6S0gMqSAnSqDH6vi/FpD7HEQyYGlLftZqvdz8VLt3H7oi8wUy4xzU6baN3dRWt1Ifqkj+sX
+L3B73E3sG5uFq6OoohRjOnDHE1iZDaykRWvAXYPurq4u8m22dbFJWPQmWb/rrqmygzd//gsOHeqm
+c99hXju0g0L7ytaZJXUt7NzRgi3P9GI3vGya/QodNUXYGvbTvW8rGX8Ie8M2undW4bQ+3+tcXlE5
+NVXFmAw6UJnZfvAQL+2sxm7SKKygKJe1YT0NuiWEQkEmJiaorq6RbyuvB6qaGygy+Hj3H9+hdyRM
+gVNDIBRFY3FQUmjHLBknZeO4Z9ziUzKvVlNSVklO7yQdWcCX0pFnyOL1+EiqrZQVWUl65/FFM9hL
+CyEcQmXJx2pZbuqdNtgpdVrQanVoMxHmIyrZqFuvXXSfUqmyhIQ6Mpg1BD1eQjENheWFaJILsqm2
+0VGKhQihpF6QeB5GUc/UnbKTEZdsmh2d9aOrt6DThrk9MY62ppSUJ0Q8+cBtfa1QbyV2dGo1ep0W
+jSolm3H7RfqnNjtFO+QvKz+R0uAsKcZuNaLOpZGSrIjHJWIWvxcXYDXrUYv6h71zeMJadr78U47U
+xfns5BmuXhtn7OZ1piMeDI4SSrULiqG3Qi5rw3oZdAcCAbmcU6dO8b3vf5+Ojg7ZnPtZ1VDMHyCu
+bmBLfb0gwD4mPEGSKQP1uw/xva5mDOkE2aSbj//wsehIOVTWOl46WkZGLzqj9yqfjFrZ25Dmk3c+
+ZM62m5+8uY35j/+JD29nOPLWK0S/Oo+qYbtsrLTU1NtT2sWPXt2CXXL4n7nGB0Nq2jdVUmDWYXEU
+U2BN8eV7N6jeWcrtD9/l/IST137yOnbXZ/zukx42Hfse9aF+RnIVtDUUYjDaMYQGePfPn9AXrmJP
+90HCZxa4qhZpRypD8/ZuqjQe3htZIBB9IBUxt4iyD1MmiCwtDo3DCdf+/Hs+uTZLcfthju0sX1b+
+ZKKcYz94mWqrimwmR16hhf53f8Mn/Qb2HRb7KTKTX1iA78q7/OHLOOUOC2Z7Kfv2RPCMZ2gRCrF0
+4SaJ6u1oJ84qht4KuawdkkF3W1ub7CY3OjK6JnIZGRkRqiFLRWUFXwiCKSospKm5+ZkfO5gUV/gb
+lTY6u9+gvK6aL85c4PZcMUd2t6Kb+prfnziLX6UhKdRMm2QVqdUwfvoTrmfbeO2lSjRXp1Hpq6i1
+OnA0lmE2Oamos2NPlVNszPCVP4b/+iVuXIxhaT3GW/sWTb0jGi0GvRHv7c/58PxVJnxppm/o0ZpL
+OfTW99kUmGVkcBBjax3VFXkMOuvIs5gpq64SJJWmttCAZ8JBx/564sOfc3KigOMvt7Ot6DIzMbVs
+mp3Wa2R7ToTasloNqNNp8kRH185qBYmkl2XsRq0JU2yAt9+9Tevrr1DTWErepJOuXS0wsbz84sYu
+GgqifPrbPzKqquVnPz+GTiU9BuLj9tWzXIlEaT36Y/bVNWL56iNG5wM0WWc58f5n9LlTbDZoMRtT
+9LvidMqG3mNCYS0aen+pGHor5PKkWC+D7mZBJJJl5tDIMDPTM+TZbOvzPFNkjJNvv417rpuurt28
++Yae5HWwmVWMXR8Ukj1M4O7JLrn7+3u5ODjGUDKP7g4b6rkhIf0rKK9ppLrGwII7QElRDa22GtRi
+XXciQoKyh029pV6f8/LV1QEmp31IXT2Ekx3d+6m3xrjy7kkGXNOo5/dysKqeDmMVSbeHRFkBZc12
+CtRhrhttNIi0Kr9uD92laQwkSajSEpfcM81eHENVM36jh3RTIy8fO0IyfoIbQ3MkluQekhF539lL
+TE4Mkbewj+JsDm2lSL1EimN9oPwCp5bkdA+uSAjPfD+uYCc6oeq0qgwZYwk72yoFITrRp+Zkj+F0
+NisUTpxoMk4me3/osf/mIA2VOxRDb2VA9+mx1KD7i1NfPJNBt5QCGUR5XQe6+Nu//VsqKyvXpY46
+kwmDNsytc+9x4uIQUXs5zqRIf1JZDHlGNEKpqLUPv1xNenlYVlIyKjdjriD2zVuptEa4frkfv66K
+7Y0O/KNCpRkaePMnr1FjSTDlWiAq0gjZ1Du7SDCLJtrSpcdKRftRDrc4mL70EZfH52SP25ERD1ln
+C22VZiZuXGUqoBdEVYtmYZxYKERGkIJ3aoCbVy9y8uMTXJ7wEHnwSQmxn/jcFf740acM58p5aWcN
+RTb9Q21x14g8mcnKsenlAFMPlS8ZTakNVqwmCwWl5eSbDGhETIVth/nxq3uwJl24fGHSUhoJd/5U
+PHj/e9HQOykbem8t1jDcqxh6K+TyhFhPg24JkqN/UVHRuj6BXdzUxtYtrTRvaqQ430wmEiAw3s/Y
+XITqHVvYvLWVza2byLeYUN19c8i914ncSdmG3OQsdrKeGeaGe5hPmbBrIwxPR0gZHbKp96hk6i29
+zfCOqbdeGijmfmG6wq28emAL+alJxkNanGU1lNiMBEfGCOZMWNJ+xtx9DHjTOOw6pkfHcd+4zsRs
+WKQYadkZbsEfJrPk1u69vizIwlFSSoU+hDccRrCmIJKHhXRu2fecUBJDK5Y/NeIiVdwmSK6LV18/
+QnWxUz65C4ttGDILTHk8JNNJVFpBPoKgU5IlqCqPiooybEa93I6yAXlu0dDbVFGFJjChGHoradGT
+Q7pb9Otf//rFTtvyy9i6tRGnUSsbJk1ePcOk7zbjF7Tounaw59BxctE5PhYdJjI/wyhhonEhDVIB
+picmCUTjIjUYYmhAdLDxQYKhGQaGhzD5QowF/3/2zvypjfOM419pdaADhIQAH5xOS22DERhD8NVi
+UzeTNJ7pTJxO89d1/FOdJm3TJq6JDW6GscEQD3aMzX3fEhLoXkkr2L7vYg4hicYgamQ/nxnPgIze
+Xa30fvU+77v7WVY2eF9ieNCGqvomSEE/lllnLasoxtRsALOTEvzhqFIGGKx6+F0LcJqscDT9hlVg
+MQw+/A69o9OsFBzBmnoWXhYMwdFxlBg86J8KIBhZRmdXD/SXHLh47QzbfxEv27+Ff96PhdkphAJh
+hLGM2Qm2heIz+HWtFWYhiqG+EfgC4vZBWNv+e55NAdci2CtDRBpj7VuS2u/p7UKPQYWaD05CYs8R
+oxE+Z4zx/n4U5p5HfdNlVt54sRQwoqzYiieTIxi21aDu/Dm4Z3qxMj8HObCCSHwN7oFhDJeYoZrt
+h98XoJTYJyTo3ieHLejmsumC/FxEg2zIH4xsCac3RdbxYAiitLb/uYA0Uu+MneTL2rdYTIiz1ydK
+Utr9NFos0IRZ4LC/iR+gfbWtHGX5vBRah+rYBXzSZMeLu9+gZ2wOYTZaMajZ64vFIRi25d4yO5ZG
+vYyoGCGNZuYhQfdRhQ/5F8PJdu2DSLB3NZRG6p0hWPs+7//e0fB+DeK72tdbS9Fw5SyOWQzKRPBi
+/2O8WGIjuw2j99brW9sh9+aPh2g6hcoigtgLcfwRvmL/dCYj4mxksh6ntWMKlyyGBN1HcMQXCtNB
+eN/ChQTdqSFBN/HehQsJuveGBN0Esc9wIUE3QRCHEi7ZJOjOKYhA0G8sJYZdWmhhIkE3QRzVcMkm
+Klp8yCuNKj+/+qsdkvvwt0mCboJ4D8LlbUGCboJIDwm6CYJ4t0cufHWHlxgmk0mZkOVzJtxzy+d+
+iHftK02HXLMeUVGEJMWTxNzvspicwuUtYLfb0dT0IQoL7RvhIkl41vcMY2OjGQ2YTAq6+UWQXDq1
+XyKRSJp3JQ8njucj7lvGalBULtzjzlebPg7XcgBmdqyyWSatMpTgwqUKTD17jlnnyvY1Re+imJzC
+5e3T0HABRqMBvb29ykoMFzHVn6+Hx+NWOnGm2BR0T09Po7urC16fb99L1rdv30ZbW9u+94UHU2lp
+CgeM8Qxu/rEVga4v8X3fODwsW3/VchMflfpw56seVF65gmPeZ3jweBjOlOGiQeHJ4yyAvK8D6Ggt
+ycu6EzhTXQNpfAyLO8JFEZN/1ow8RNjIVQVNcAhf3+1iAZR8/ZEiJi/3YnBoksKFwmVvrNZ8jIyM
+YHx8XBmp8LKIy5d0Ol1Gt5NJQff9+w8OvD8pw4VXDlBBHd+WGXF9kyCoWPkYxoQik15CIG5E8cm8
+JIl1UH0MNz7/Aqei/Wjv7MPzsWUIpgLYLWboNDJCKy5FqL1msCUIuRecARgs1mTJtahFQVE+9Kxc
+0QhxuF0iTLkaBFZWEIqsw3q8mAWZH+7VKMxs5GkUBGh0bH8EIORh2/KFIKlMbMRYALNBC1nIg06V
+fMeEg4rJlwIybPk5ED1p5OFyBLLeDEOO/s3F5K5FrAQjoLuOZFm4FBUVQa/XK/MuvGThCK/PsuX/
+53Q6M1oaZUrQfcjFAwx5xThRIsG8xkZc7MOuhpc9bkHNxWsoXenBN08F3PjD5SSJ9aNAJawGM/KL
+G/HhhRim/SM41XQdDSdZQLCACY124tsHP8Jflijk/q57FY4rTcmS6wk7Pr7VinIL67ihabTd96D5
+ahH62u7hxWQUl29+jgpvN/7ePoP6399CDXse1mLQ2/Lhfvpv/K2jD2JBAz79tBF5WtY75RwUWiNQ
+7QqXg4rJ7/xnFS2tVZh7kEYe7h9GyH4K1jzLG4vJu//yZ3S8mIKXwiW7wqW1tVUJkevXryPMRhP8
+5DeukOQBwx9zuVzK7TsySSYE3YdaOrC3puzSVeTViuDn6plY6OYElxTrnE6RSWshqFNLrJ+0TWA5
+UAfz0nPcbe+Gz3YNjaeLMfdDB6byHPhdcz2OPR2DtEvIbbv4RWrJNYs1vYaFv+cV7t3rxEC4Cs2G
+UugEtaKL1OnUyqhGzRWZOi2MJhGPvm6DVP1bXP6gAqYfp1Db4oA9MoQv73RCU3EDtz4qg0qdqOk8
+qJi8MDrFSkBDenn4iAfTk054g28uJp9cCiIsUWBkZVnE4aEyMDCgXC1cV1eHgoKCjNy0bDeZEnQf
+Jny1ZHnsFX6adiLMcq+ssRW15lTjm2SJNVQRcI3UWiyAmCihpNgKEysvy5uaURjTQY6GIMf5dVmJ
+Qu5TZjVi84NJkmvV6+0M9zzD3KwTkuUXyl0PNsqadaV02ByDCGoZ/qEnGJydQNTshqNQZmVQKYrM
+eiw+HUTIx8qnn+bgbS5OFkgdUEwuYBFTy340ppGH9/kiWF23oHZfYnI3SP2SxeEiSZIy58Kl2RUV
+FcqZq5m++HCnoPt+2/cHEnQf7sglDvfoIPp/GsMK+8aUKxtw1sw6eoqsTZBYb4UODwWBTxgoox05
+HsHc0ABmPH52nIOYcHuhLkCCkJuv6KpzNiXXhYrkOrrDYb25HaV9WVDmhfTm3I1RC3b6bjXKHkgx
+GXwxTsXnMlR8HoafZqBDntXMRjtC8hK0gZV+8Q0xuV9rw59auZh8PlFMzvdn19Lzlpic/Tw54UbD
+tdOotgl48o9uyEYHzjcUQ5huR8hwCp983ARhoR8TzhUcL8z5GWLyf22JyYksDhfe8bnsmnf2vEzd
+pmMXmRR0OxyOA5/+vxcJnRkJvfe1THoziHaGEv9NQlCMQ8i1Kjc+eznNAvscK6vkGETfqtJRuEtJ
+t/XsjRZmJpxwtHDJtQay9aQiuR5PaHvzWyCKNdmIypIKaKoqUW63QXbv2redz4stYH41gOa6c6gK
+65BfdRZ2W87GxaU7596qqnFcHUUoJCJ3p5i8ogC/5GLymBremIT5iZm0YnLP+BT8LTUoibsUebjo
+qcb1ci2Gf2DvtbZaEZOPcjG5/cSWmHxRnU5MPoQnr8XkWtcCTehmc7hwSkpLkc9GLAaj8VDaz6Sg
++9BO/1fk1NMQ/eLWh9m/JeIOwzU/xx5YQSSiSSOxXsXgyyEU159Gfa2I6Qc9eNxjwkVHHVpON2A9
+6kT7P7msehmzk/KWkHu8uws9pmTJtSwlyrJV/lkMjc3BUX8BNREf3EuTCDj5dqPb+8bSKx5wsTID
+ECMePH/aD3tzDRqvXoWflRgzoyICbLs7wyUTYnLZl14evuh6ieHKA4jJRxYpXN5kSeIoCLr5pO3m
+KlEqOjo6lEnddG2e/sy568LF/KwXdGcCLvnWQWSdO6aUPJty73AwxEqj5GOj2UNyHUrRqSxsdBFm
+HTJVWyk/bMr2ZbZ9FlppemnWi8mJTY6GoPvhw4f0VhwCXPIdSyhP9pZ7a/eSXKfA53uzk9d+jlw8
+68XkxNEti4i3B0muCQqXI8K7KugmyTWRVeFymILu0LJ267G1qPr/srRMgm6C2Ge4ZJOge7bTlvC4
+IKyToJsgjmq4ZFrQvdHpM9/Z07V5mMFCEMQBwiXTgm6CIN4vSHNJEASFC0EQFC4EQVC4EARBULgQ
+BEHhQhAEhQtBEASFC0EQFC4EQVC4EARBULgQBEHhQhAEhQtBEASFC0EQFC4EQVC4EARBULgQBEHh
+QhDE+wbXXD6nw0AQRIbx/leAAQD9q9Uk+ogl9gAAAABJRU5ErkJggg==" transform="matrix(1 0 0 1 433.8462 -0.7636)">
+	</image>
+</g>
+</svg>
diff --git a/img/logos/projects/simtd.jpg b/img/logos/projects/simtd.jpg
new file mode 100644
index 0000000..621f62a
--- /dev/null
+++ b/img/logos/projects/simtd.jpg
Binary files differ
diff --git a/index.html b/index.html
index c53e254..4021a8a 100644
--- a/index.html
+++ b/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/">
-  <meta property="og:title" content="Eclipse MOSAIC">
+  <meta property="og:title" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -278,7 +278,7 @@
 
 
 
-  <title>Eclipse MOSAIC</title>
+  <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -334,7 +334,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -347,7 +347,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -777,9 +777,6 @@
   
   
   
-    
-    
-  
   
   
   
@@ -793,17 +790,896 @@
       
 
       
-      <div class="col-12 mb-3">
-        <div class="row justify-content-center">
-          <div class="image image-top col-md-10">
-            <img src="https://www.eclipse.org/mosaic/img/simulator-coupling.png">
-          </div>
-        </div>
-      </div>
+      
       <div class="col-12">
         
         <div class="text-and-buttons">
-          <div class="text text-center"><p>The Eclipse MOSAIC Co-Simulation Framework flexibly couples simulators from different domains to create a holistic collection of simulation models for different scales. Eclipse MOSAIC improves the development and virtual testing of new Mobility Apps. Simulators could be exchanged according to the scenario and additional simulators could be coupled easily to extend Eclipse MOSAIC.</p>
+          <div class="text text-center">
+
+
+  <div class="section-heading row mb-3">
+    
+
+    
+  </div>
+
+
+<div class="simulator-coupling d-none d-xl-block" style="width: 100%; margin: auto;">
+  <div class="row">
+    <div class="federates col-12">
+      <div class="row">
+        <div class="domain applications col">
+          <div class="domain-inner row">
+            <div class="title col-12">
+              <h2>Applications</h2>
+            </div>
+            <div class="simulators col-12 align-self-end">
+              <div class="row slim-gutters">
+                <div class="simulator-wrap col-4">
+                  <div class="simulator user">Safety App</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap safety_app position-top-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Safety Application</h3>
+        </div>
+        <div class="col-4">
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">Vehicles may be equipped with an application that analyzes the surrounding environment (i.e. wheather
+conditions, driving behaviour of other road participants) and reacts on specific events and conditions.</div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-4">
+                  <div class="simulator user">Traffic App</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap traffic_app position-top-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Traffic Application</h3>
+        </div>
+        <div class="col-4">
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text"><p>As an example, Traffic Management Centers may be equipped with an application that receives V2X messages of
+road participants, analyzes the traffic volume and controls traffic lights and variable message signs to
+reduce traffic density.</p>
+<p>Furthermore, vehicles may be equipped with applications that receive V2X messages
+from the TMC with further information or specific route suggestions.</p>
+</div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-4">
+                  <div class="simulator user">Your App</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap your_app position-top-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Your Application</h3>
+        </div>
+        <div class="col-4">
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">Write your application for your specific demands for any simulation unit.</div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+              <div class="row">
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">MOSAIC Application Simulator</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap mosaic_app_simulator position-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Eclipse MOSAIC Application</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Application Simulator plays an important role in the simulation of vehicles and its functions. It
+provides the capability to model the application logic for different simulation units (e.g. vehicles, road
+side units (RSUs), traffic lights, and others) as well as possible interaction attempts between the units
+via different communication links.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/application_simulator/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="arrow"></div>
+        </div>
+        <div class="domain communication col">
+          <div class="domain-inner row">
+            <div class="title col-12">
+              <h2>Communication</h2>
+            </div>
+            <div class="simulators col-12 align-self-end">
+              <div class="row">
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">OMNeT++</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap omnetpp position-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Network Simulator OMNeT&#43;&#43;</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text"><p>The simulation platform for discrete-event systems OMNeT++ together with the INET framework provide all
+models necessary for <strong>Vehicle-2-X</strong> communication.</p>
+<p>The <i>Network Simulator OMNeT++</i> couples OMNeT++
+and INET to the Eclipse MOSAIC framework. It can be used for examinations that require precise communication
+simulation.</p>
+</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/network_simulator_omnetpp/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">ns-3</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap ns3 position-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Network Simulator ns-3</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">ns-3 is a discrete-event network simulator and mainly focuses upon improving the core architecture, software
+integration, models, and educational components for real-world network devices and protocols. It simulates
+both unicast and multicast protocols and is used extensively in research on mobile ad-hoc networks.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/network_simulator_ns3/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">MOSAIC SNS</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap sns position-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Network Simulator SNS</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of
+V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in
+certain places.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/network_simulator_sns/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">MOSAIC Cell</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap cell position-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Network Simulator Cell</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication.
+The simulation of cellular communication in Eclipse MOSAIC consists of two parts: The Cellular Simulator
+itself and the applications that can communicate over cellular networks in the Application Simulator.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/network_simulator_cell/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="arrow"></div>
+        </div>
+        <div class="domain traffic-vehicles col">
+          <div class="domain-inner row">
+            <div class="title col-12">
+              <h2>Traffic & Vehicles</h2>
+            </div>
+            <div class="simulators col-12 align-self-end">
+              <div class="row">
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">Eclipse SUMO</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap sumo position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Traffic Simulator Eclipse SUMO</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed
+to handle large road networks faster than real-time and simulates each vehicle individually.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/traffic_simulator_sumo/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-12">
+                  <div class="simulator extended">PHABMACS</div>
+                  
+
+
+  
+  
+    
+    
+    
+      
+    
+    
+    
+    <div class="desc-wrap phabmacs position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Traffic Simulator PHABMACS</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/MOSAICExtended-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text"><p>The Physics Aware Behavior Modelling Advanced Car Simulator (PHABMACS) provides a sophisticated framework
+for testing ADAS within a simulated environment. Vehicles are simulated with advanced simulation models
+providing them with realistic driving dynamics within normal traffic situations.</p>
+<p>Tested ADAS can utilize
+simulated sensor data as well as control simulated vehicles by using virtual actuators.</p>
+</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/simulators/traffic_simulator_phabmacs/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="arrow"></div>
+        </div>
+        <div class="domain evaluation-tools col">
+          <div class="domain-inner row">
+            <div class="title col-12">
+              <h2>Evaluation Tools</h2>
+            </div>
+            <div class="simulators col-12 align-self-end">
+              <div class="row slim-gutters">
+                <div class="simulator-wrap col-6">
+                  <div class="simulator">2D Visualization</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap 2d_visualization position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>2D Visualization</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">To get a simple and instant impression of vehicle movements of a simulation Eclipse MOSAIC provides a
+2D visualization presented in your favourite browser.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/visualization/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-6">
+                  <div class="simulator extended">3D Visualization</div>
+                  
+
+
+  
+  
+    
+    
+    
+      
+    
+    
+    
+    <div class="desc-wrap 3d_visualization position-top-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>3D Visualization</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/MOSAICExtended-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D
+engine and models to visualize vehicle movements and various events which occur during the simulation like
+sent and received V2X messages.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/visualization/phabmap/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+              <div class="row">
+                <div class="simulator-wrap col-12">
+                  <div class="simulator">FileOutput</div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap file_output position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>FileOutput</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text"><p>With the tool FileOutput you have the opportunity to log specific Eclipse MOSAIC interactions.</p>
+<p>Interactions
+are events that are managed by the <i>Interaction Management</i> and i.e. enable coupled simulators to react
+on specific events fired by another simulator.</p>
+</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/visualization/filevis/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-12">
+                  <div class="simulator extended">Statistics</div>
+                  
+
+
+  
+  
+    
+    
+    
+      
+    
+    
+    
+    <div class="desc-wrap statistics position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Simulation Visualizers</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/MOSAICExtended-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Statictics Visualizer is a visualisation tool to easily measure basic simulation outcomes. With the
+Statistics Visualizer you will be able to obtain short or detailed results of the simulation, e.g. travel
+times or the average speeds of groups of vehicles, or the average flow on induction loops.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/visualization/statistics/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+                <div class="simulator-wrap col-12">
+                  <div class="simulator extended">ITEF</div>
+                  
+
+
+  
+  
+    
+    
+    
+      
+    
+    
+    
+    <div class="desc-wrap itef position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>ITEF</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/MOSAICExtended-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular
+communication scenarios. It is suited for field operational tests as well as simulations.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/visualization/itef/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="arrow"></div>
+        </div>
+        <div class="domain aso col-1">
+          <div class="domain-inner row">
+            <div class="simulators col-12 align-self-center">
+              <div class="row">
+                <div class="simulator-wrap col-12 mt-4">
+                  <div class="simulator user"><i class="fas fa-plus-square"></i></div>
+                  
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap new_simulator position-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Couple your own simulator</h3>
+        </div>
+        <div class="col-4">
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">Read our documentation and learn how to couple your own or a third-party simulator to Eclipse MOSAIC.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/extending_mosaic/simulator_coupling/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="arrow"></div>
+        </div>
+      </div>
+    </div>
+
+    <div class="eclipse-mosaic col-12">
+      <div class="inner">
+        <div class="row">
+          <div class="eclipse-mosaic-title text-left">
+            <h2>Eclipse MOSAIC Simulation Framework</h2>
+            
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap eclipse_mosaic_framework position-top-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Eclipse MOSAIC Simulation Framework</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Eclipse MOSAIC Co-Simulation Framework flexibly couples simulators from different domains to create a
+holistic collection of simulation models for different scales.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+          </div>
+          <div class="core col-12">
+            <div class="row justify-content-between">
+              <div class="management-wrap col-3">
+                <div class="management">Federation Management</div>
+                
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap federation_management position-top-right">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Federation Management</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The Federation Management is responsible for the administration of participating federates. This includes
+deploying, starting, stopping, and undeploying federates in a distributed system.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/extending_mosaic/#federation-management"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+              </div>
+              <div class="management-wrap col-3">
+                <div class="management">Time Management</div>
+                
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap time_management position-top">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Time Management</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The time management is necessary for coordinating the simulation and synchronizing participating federates.
+It assures that each federate processes its events in correct order.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/extending_mosaic/#time-management"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+              </div>
+              <div class="management-wrap col-3">
+                <div class="management">Interaction Management</div>
+                
+
+
+  
+  
+    
+    
+    
+    
+    
+    <div class="desc-wrap interaction_management position-top-left">
+      <div class="row">
+        <div class="content col-8">
+          <h3>Interaction Management</h3>
+        </div>
+        <div class="col-4">
+          
+            <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg);"></div>
+          
+        </div>
+      </div>
+      <div class="row">
+        <div class="content col-12">
+          <div class="text">The exchange of data among federates is offered by the Interaction Management using interactions. Eclipse
+MOSAIC and its federates are decoupled through a publish-subscribe paradigm provided by the Interaction
+Management. A published interaction is forwarded to each subscriber directly after it has been published.</div>
+          
+            <div class="footer">
+              <a class="mosaic-btn mosaic-btn-secondary" href="/mosaic/docs/extending_mosaic/#interaction-management"><i class="fa fa-book" aria-hidden="true"></i>Read more in Documentation</a>
+            </div>
+          
+        </div>
+      </div>
+    </div>
+  
+
+
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="simulator-coupling-fallback d-block d-xl-none mb-3">
+  <img src="/mosaic/img/simulator-coupling.png">
+</div>
+<p>The Eclipse MOSAIC Co-Simulation Framework flexibly couples simulators from different domains to create a holistic
+collection of simulation models for different scales. Eclipse MOSAIC improves the development and virtual testing of new
+Mobility Apps. Simulators could be exchanged according to the scenario and additional simulators could be coupled easily
+to extend Eclipse MOSAIC.</p>
 </div>
           <div class="buttons">
             
@@ -1158,7 +2034,7 @@
   <div class="image col-3 d-none d-md-block">
     <div class="row justify-content-center">
       
-      <a href="https://fokus.fraunhofer.de/en" class="view-list-item mb-3">
+      <a href="https://www.fokus.fraunhofer.de/asct" class="view-list-item mb-3">
         
         <img class="mx-auto" src="/mosaic/img/logos/partners/fh_fokus.png" alt="Fraunhofer logo" width="60%">
       </a>
@@ -1176,7 +2052,7 @@
     <div class="row justify-content-center">
       
       <div class="col-6">
-        <a href="https://fokus.fraunhofer.de/en" class="view-list-item mb-3">
+        <a href="https://www.fokus.fraunhofer.de/asct" class="view-list-item mb-3">
           
           <img class="mx-auto" src="/mosaic/img/logos/partners/fh_fokus.png" alt="Fraunhofer logo" width="60%">
         </a>
diff --git a/index.json b/index.json
index 7cb988a..7e3336c 100644
--- a/index.json
+++ b/index.json
@@ -1 +1 @@
-[{"authors":["fokus"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":-62135596800,"objectID":"cbf22d51976246e8f80b5f6a1df3bf83","permalink":"https://www.eclipse.org/mosaic/author/fraunhofer-fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/author/fraunhofer-fokus/","section":"authors","summary":"","tags":null,"title":"Fraunhofer FOKUS","type":"authors"},{"authors":null,"categories":null,"content":"Applications in Eclipse MOSAIC are simulated by the Eclipse MOSAIC Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;). To actively gain execution at some later point in time, an application can also schedule a generic event itself. When the application is executing, it has access to a set of methods, allowing to trigger actions like sensing messages or controlling the vehicle, influencing the current simulation (the application \u0026ldquo;acts\u0026rdquo;).\nDeveloping Applications Developing custom applications in Eclipse MOSAIC is rather easy. The best way to learn it is by looking at the source code of actual applications. For this purpose, we provide the source code of all tutorial applications and further examples. You can find the source code on the DCAITI website.\nFor an easy understanding of the application API, the following questions and their answers should help:\n  What is required to get my own application to run in Eclipse MOSAIC? In Eclipse MOSAIC it is very easy to build your own application. First, it needs to inherit from the AbstractApplication class (see following section). Secondly, the application must be mapped to a vehicle (or RSU, or traffic light, \u0026hellip;) via the mapping configuration (see section mapping). Finally, the application must be compiled as a Jar-File and placed into the application directory of your scenario.\n  How can I access vehicle functions from within the application, such as sending V2X messages? Every applications has access to the OperatingSystem of the underlying unit which allows to change its state or to initiate actions, such as sending messages to other vehicles.\n  How can I react to events during the simulation, such as receiving V2X messages? For each application you decide, which events the application should listen to. For example, if your application needs to react upon incoming V2X messages, it simply implements the CommunicationApplication interface. In the following section you can find all available interfaces applications can implement.\n  Create a ’Hello world’ application based on Maven For this example you need to install Maven which is used to resolve required MOSAIC dependencies and to compile your application Java code into a Jar file. Follow the steps to build an example application:\n Create a new folder HelloWorldApp: └─ HelloWorldApp ├─ src | └─ main | └─ java | └─ HelloWorldApp.java └─ pom.xml   Place a pom.xml with the following content: \u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;project xmlns=\u0026quot;http://maven.apache.org/POM/4.0.0\u0026quot; xmlns:xsi=\u0026quot;http://www.w3.org/2001/XMLSchema-instance\u0026quot; xsi:schemaLocation=\u0026quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\u0026quot;\u0026gt; \u0026lt;modelVersion\u0026gt;4.0.0\u0026lt;/modelVersion\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic.app\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;HelloWorldApp\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;0.0.1\u0026lt;/version\u0026gt; \u0026lt;packaging\u0026gt;jar\u0026lt;/packaging\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;mosaic-application\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.0-SNAPSHOT\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; \u0026lt;/project\u0026gt;   Create a new application in src/main/java/HelloWorldApp.java: import org.eclipse.mosaic.fed.application.app.AbstractApplication; import org.eclipse.mosaic.fed.application.app.api.VehicleApplication; import org.eclipse.mosaic.fed.application.app.api.os.VehicleOperatingSystem; import org.eclipse.mosaic.lib.objects.vehicle.VehicleData; import org.eclipse.mosaic.lib.util.scheduling.Event; public class HelloWorldApp extends AbstractApplication\u0026lt;VehicleOperatingSystem\u0026gt; implements VehicleApplication { @Override public void onStartup() { getLog().info(\u0026quot;Hello World!\u0026quot;); } @Override public void onVehicleUpdated(VehicleData previousVehicleData, VehicleData updatedVehicleData) { getLog().info(\u0026quot;Driving {} m/s.\u0026quot;, updatedVehicleData.getSpeed()); } @Override public void onShutdown() { getLog().info(\u0026quot;Good bye!\u0026quot;); } @Override public void processEvent(Event event) { // ... } }   Build the application using maven: mvn clean install   Copy the JAR file from target/HelloWorldApp-0.0.1.jar to the application directory of your simulation scenario. Use the fully qualified name HelloWorldApp in the mapping_config.json to load the application onto vehicles.  Application Interfaces You may have noticed that the HellowWorldApp extends from the class [...].AbstractApplication\u0026lt;OS\u0026gt;. In order to define the type of unit your application can run on, you need to speficy the operating system by choosing one of the following:\n VehicleOperatingSystem - for applications mapped to normal vehicles. ElectricVehicleOperatingSystem - for applications for vehicles with electro mobility features. RoadSideUnitOperatingSystem - for applications mapped to RSUs. TrafficLightOperatingSystem - for applications mapped to traffic lights. TrafficManagementCenterOperatingSystem - for applications mapped to TMCs. ChargingStationOperatingSystem - for applications mapped to charging stations.  See package: org.eclipse.mosaic.fed.application.app.api.os.*\nFurthermore, your application can implement the following 7 interfaces in order to get informed on specific events:\n VehicleApplication - get informed when information about the vehicles state is updated. ElectricVehicleApplication - get informed on electric vehicle specific events. CommunicationApplication - react on incoming V2X messages. MosaicApplication - get informed on Eclipse MOSAIC internal events. TrafficLightApplication - get noticed when the traffic light program is changed. ChargingStationApplication - react on state changes of the charging station. TrafficManagementCenterApplication - get informed on state changes of road infrastructure.  See package: org.eclipse.mosaic.fed.application.app.api.*\n Basic Functions and Concepts for Applications The following section describes how applications are implemented.\nEvent hooks Applications are implemented by reacting to specific events. Those events are, amongst others:\n The simulation has started: All static units (e.g. road side units) are set up (onStartup() is called) Once a vehicle has been added to the simulation, all its configured applications are initialized (onStartup() is called) The data of the vehicle has changed, e.g. after the traffic simulator has finished one simulationstep (onVehicleUpdated() is called). A unit has received a V2X message from another entity (onMessageReceived is called). A unit which has send a V2X message via a ITS-G5 topocast receives an acknowledgement (onAcknowledgementReceived() is called).  Another example:\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .actor{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 text.actor \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .actor-line{stroke:grey;}#mermaid-1603209753374 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-1603209753374 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-1603209753374 #arrowhead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .sequenceNumber{fill:white;}#mermaid-1603209753374 #sequencenumber{fill:#333;}#mermaid-1603209753374 #crosshead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .messageText{fill:#333;stroke:#333;}#mermaid-1603209753374 .labelBox{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 .labelText,#mermaid-1603209753374 .labelText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopText,#mermaid-1603209753374 .loopText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:hsl(259.6261682243,59.7765363128%,87.9019607843%);}#mermaid-1603209753374 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-1603209753374 .noteText,#mermaid-1603209753374 .noteText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 sequence{fill:apa;}RTIApplicationSimulatorApplication1Application2VehicleRegistrationonStartup()onStartup()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()sendV2xMessage()V2xMessageTransmissionV2xMessageReceiptiononMessageReceived()VehicleUpdates (remove)onShutdown()onShutdown()RTIApplicationSimulatorApplication1Application2   Example sequence of onStartup, onUpdate, onMessageReceived and onShutdown of two applications.\nA onStartup() method, which enables the ITS-G5 communication module of the unit, could be implemented the following:\n@Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio().channel(AdHocChannel.CCH).power(50).create() ); }  A onMessageReceived() method, which reacts upon a DENM message, could be implemented as:\n@Override public void onMessageReceived(ReceivedV2xMessage receivedV2xMessage) { final V2xMessage msg = receivedV2xMessage.getMessage(); if (msg instanceof Denm) { Denm denm = (Denm)msg; GeoPoint eventLocation = denm.getEventLocation(); //TODO you can add further implementation here } }  Trigger own Events It is possible to trigger own events at specific times within the application. For this purpose, the application has access to an own event manager. Each event requires a simulation timestamp when it should be called, and an event processor.\nThe following code triggers an event in 10 seconds after the application has been initialied:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this); getOs().getEventManager().addEvent(event); } @Override public void processEvent(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  To address a specific method to process the event, Java lambda expressions could be used:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this::mySpecificMethod); getOs().getEventManager().addEvent(event); } public void mySpecificMethod(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  Using the Operating System Each application has access to the operating system of its unit. Depending on the type of unit, the operating system provides different methods. For example, an application which is mapped on vehicles, has access to the VehicleOperatingSystem by calling this.getOperatingSystem() (or this.getOs() to keep it short). The following examples show a bit of the capabilities the VehicleOperatingSystem provides:\nGet the current simulation time (in nanoseconds):\nlong time = this.getOs().getSimulationTime();  Return the name of the unit (e.g. \u0026ldquo;veh_0\u0026rdquo;):\nString nameOfUnit = this.getOs().getId();  Get access to vehicle data, such as speed, position, heading, and the like:\ndouble speed = this.getOs().getVehicleData().getSpeed(); GeoPoint position = this.getOs().getVehicleData().getPosition();  Change parameters of the vehicle during the simulation, such as its maximum speed:\nthis.getOs().requestVehicleParametersUpdate() .changeMaxSpeed(10) // m/s .changeMaxAcceleration(2.4) .apply();  Get the current lane index of the vehicle and change lane to left (within 5000 ms):\nint laneIndex = this.getOs().getRoadPosition().getLaneIndex(); int newLaneIndex = Math.max(0, laneIndex - 1); this.getOs().changeLane(newLaneIndex, 5000);  Sending a V2X message via ITS-G5 singlehop broadcast:\nMessageRouting routing = this.getOs().getAdHocModule().createMessageRouting().topoBroadCast(); V2xMessage message = new MyV2xMessage(routing); this.getOs().getAdHocModule().sendV2xMessage(message);  Park the vehicle in 200 meters at the right side of the road for 3 minutes:\ndouble distance = 200; double duration = 3 * 60 * 1000; IRoadPosition stopPosition = RoadPositionFactory.createAlongRoute( getOs().getNavigationModule().getRoadPosition(), getOs().getNavigationModule().getCurrentRoute(), 0, distance ); this.getOs().stop(distance, duration, Stop.StopMode.PARK);  Navigation The navigation of vehicles (i.e. calculation of routes) is handled completely by the Eclipse MOSAIC Application Simulator. Each vehicle is equipped with a navigation system which provides all required information and functions for navigational purposes:\n Retrieve the current position and heading of the vehicle. Get the target of the vehicle. Calculate various routes from the current position to an arbitrary target. Choose a suitable route out of existing ones from the current position to an arbitrary target. Switch onto a specific route.  In order to provide routing functionality, a map model based on Open Street Map data is used, which needs to be transformed before the simulation using scenario-convert. The map data including initial routes for vehicles is provided with the database file which needs to be located in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/\u0026lt;scenario_name\u0026gt;.db\nConfiguration If the database needs to be located somewhere else, the path can be specified in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ ... \u0026quot;navigationConfiguration\u0026quot;: { \u0026quot;databaseFile\u0026quot;: \u0026quot;path/to/scenario.db\u0026quot; } }  The following snippet show, how the navigation system can be used within an application:\n//get navigation module INavigationModule navigationModule = getOs().getNavigationModule(); //choose current target as target position RoutingPosition targetPosition = new RoutingPosition(navigationModule.getTargetPosition()); //set routing parameters to fastest route search RoutingParameters params = new RoutingParameters().costFunction(IRoutingCostFunction.Fastest); //calculate routes RoutingResponse response = navigationModule.calculateRoutes(targetPosition, params); //switch to best route if (response.getBestRoute() != null) { boolean routeSwitched = navigationModule.switchRoute(response.getBestRoute()); ... }  Access SUMO TraCI from applications If SUMO is used as a traffic simulator and a special functionality is required, the sendSumoTraciRequest function in the OperatingSystem can be used.\nThe function expects a string (a unique identifier which will be assigned to the response) and a byte array (representing the complete Traffic Control Interface (TraCI) request including the header). The message identifier can be an empty string.\nIn all cases the command will trigger a response. The application can receive the response from the method onSumoTraciResult. This method will receive a SumoTraciResult object. This response contains the specified identifier. The application must handle the identification process of the response itself.\n Be careful when using this interface and the TraCI commands. The commands are delivered to TraCI without any prior checks.\n   You can find the example application SumoTraciInteractionApp in the additional examples bundle on the DCAITI website.\n   Debugging of applications To debug an application, remote debugging needs to be used. The following steps need to be performed in order to debug the application:\n Open the application in your IDE. Modify your mosaic.sh or mosaic.bat by adding debug parameters to the java call:\njava -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4100 ... Add a new debug profile in your IDE for remote debugging. Make sure to correctly configure port 4100 (or whichever port you provided in step 2). Launch Eclipse MOSAIC with the argument -w 0 to disable the watchdog timer otherwise it will interfere with debugging. Connect your debugger in your IDE with the running simulation.  ","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"f3e4e878d3a3df21f512128da34ee9b3","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/","section":"docs","summary":"Applications in Eclipse MOSAIC are simulated by the Eclipse MOSAIC Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;).","tags":null,"title":"Basics in Application Development","type":"docs"},{"authors":null,"categories":null,"content":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated. It consists of the original simulator that is connected to its federate ambassador and an instance of an Eclipse MOSAIC ambassador. The federates run on top of the Eclipse MOSAIC Runtime Infrastructure (lower part of Figure 1) which offers services for federation-, interaction- and time management. The communication between the federates and the runtime infrastructure is enabled by ambassadors. More precisely, a federate that wants to access services of the RTI can use a designated RTI-Ambassador that provides access to the provided services. In the opposite direction, i.e. if the runtime infrastructure wants to invoke operations on the federate implementation, a federate ambassador is used. Each federate ambassador implements the same interface that is used by Eclipse MOSAIC to control the simulator and to provide interactions from other federates.\n Schematic illustration of Eclipse MOSAIC Runtime Infrastructure    Time Management The main problem in executing a federation is the synchronization of its federates. Each federate is a discrete-event simulator with an ordered event list from which sequentially the first event is processed. Consequently, the Time Management is necessary for coordinating the simulation and synchronizing participating federates. It assures that each federate processes its events in correct order.\nAccording to Fujimoto the time management in a federated environment includes two key components: Interaction (Message) order and time stamps. Note that we usually use the word \u0026lsquo;intercation\u0026rsquo; when talking about communication between federates, \u0026lsquo;message\u0026rsquo; will be used in the context of (V2X)-communication.\nThe Interaction Order service is completely implemented in Eclipse MOSAIC with the following design rationale: Each request of a federate to execute a local event is mapped to a global event within the Time management. Such an event consists of three attributes: simulation time, priority, and lookahead time. The simulation time defines the time in the simulation at which the event has to be processed. The priority allows defining an order of events that are scheduled at the same time. The third attribute, the lookahead time, describes an idle period following after an event. It is used to signalize that no further event will be scheduled and no interaction will be sent within this period. All events are scheduled by storing them in an event list in ascending order according to their simulation time. In case of equal simulation times, they are ordered in descending order to their priority. A time management cycle consists of three steps.\n  The federate invokes a time management service to request its logical time to advance. While Time Advance Request (TAR) is more suitable for time-stepped simulators, Next Event Request (NER) is the preferred primitive for event-driven federates.\n  The RTI delivers certain interactions to the federate. Each federate receives the interactions in the processInteraction() method.\n  The RTI completes the cycle by invoking a federate defined procedure called Time Advance Grant to indicate the federate’s logical time has been advanced. Eclipse MOSAIC supports the sequential and the parallel conservative mechanism for advancing time.\n   Interaction Management The exchange of data among federates is offered by the Interaction Management using interactions. Eclipse MOSAIC and its federates are decoupled through a publish-subscribe paradigm provided by the Interaction Management. A published interaction is forwarded to each subscriber directly after it has been published. However, a receiving federate is not allowed to advance its time based on an interaction but must request a time advancement if necessary. An interaction consists of its creation time, an identifier describing its type, and optional data. Interactions to exchange traffic, network, vehicle, and sensor data are predefined. These interactions are used to define a standardized communication behaviour.\nSubscribe Interaction Before a federate can receive interactions, it has to subscribe to them. The Interaction Management offers two different ways to subscribe to certain interactions. A federate can either define a interaction type only to receive all interactions of this type or, additionally, define conditions to filter interactions by their content. If a federate is not longer interested in subscribed interactions, it can rescind its interest.\nPublish Interaction Each federate is allowed to publish any interaction at any valid time of the simulation. After a interaction is published, the Interaction Management forwards the interaction to each federate that has subscribed to this type of interaction. A federate receiving a interaction can ignore it or request to advance its local time to handle this interaction.\n Federation Management The Federation Management is responsible for the administration of participating federates. This includes deploying, starting, stopping, and undeploying federates in a distributed system. Before running a simulation, the Federation Management creates an empty federation. After that, federates join the federation. Already joined federates can be removed from a federation, if they are not necessary for the rest of the simulation. After a simulation is finished, the Federation Management frees used resources.\nCreate Federation Creates an empty federation. After a federation is created, it is possible to join federates.\nJoin Federation A joining simulator is defined by a unique name and a FederateHandle. This handle contains the information whether start-up and deployment of the simulator are required to be handled by the Federation Management. In this case, further deployment and start-up information are included.\nStop Federation After a simulation is finished, all joined federates are resigned and their used resources are freed. All references are removed and necessary tasks to stop and undeploy the federate are executed.\nImplementation Details When a simulator is about to join a federation, a FederateHandle is passed to the Federation Manage- ment. A handle includes a Federate Ambassador that is responsible for all communication with the RTI as well as all identifiers for interactions it wants to subscribe to. Additionally, it contains two flags indicating how the simulator is started and if the simulator needs to be deployed by the Federation Management. For the deployment, the handle consists a reference to the directory including all binaries and host parameters consisting of an address and a directory in which the simulator shall be deployed. To start a simulator a start-command is included.\nIf the simulator is running, its ambassador is registered for coordinating the simulator during the sim- ulation run. Afterwards, the Federation Management initiates the subscription to interactions on behalf of an ambassador. Otherwise, before the ambassador is registered, the Federation Management starts and, if necessary, deploys the simulator on a local or a remote machine and connects it to its ambassador. The connection is created by redirecting the output of the started simulator to its ambassador. Based on the incoming data, the Federate Ambassador is responsible for configuring its communication with the simulator.\nLocal Federation Management In case a simulator is to be deployed on a local machine, its binaries are copied into the simulation directory that is defined within the host parameters. Afterwards, using the start-command the simulator is started in a new process and its output is redirected to the ambassador. Additionally, a mapping between ambassador and process reference is stored. Finally, when the federate is resigned, the ambassador is called to shut down its corresponding simulator. Finally, the mapped process is killed and all copied files are removed.\nDistributed Federation Management To administrate simulators on remote hosts, the Federation Management uses the Secure Shell (SSH) protocol to send commands and the associated Secure File Transfer Protocol (SFTP) to transfer binaries. After a process is started remotely, a mapping between ambassador, its process id, and the host on which is running are stored. Finally, when the federate is resigned, the remotely running process is killed and all binaries are removed.\n","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"1c65951f20f713cdbe7d5eea3c44701f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/","section":"docs","summary":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated.","tags":null,"title":"Core Concepts","type":"docs"},{"authors":null,"categories":null,"content":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the link above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document. Install additional software required by the simulation (see below), e.g. Eclipse SUMO  Folder Content └─ \u0026lt;mosaic-root\u0026gt; ├─ etc | ├─ hosts.json .................. Configuration of the execution host, e.g. temporary directory. | ├─ logback.xml ................. Configuration of log files and levels. | └─ runtime.json ................ Configuration of all Ambassadors and Federates coupled with the MOSAIC ├─ lib ............................. Directory with all Java compiled libraries required for MOSAIC. ├─ logs ............................ Directory with log files. ├─ scenarios ....................... Directory containing all simulation scenarios. ├─ tools ........................... Additional tools, like the HTML Visualizer. ├─ CONTRIBUTING.md ├─ LICENSE ├─ mosaic.bat ...................... Start script for Windows systems. └─ mosaic.sh ....................... Start script for GNU/Linux systems.  Additional Software The following table gives an overview of supported environments and simulators. Please make sure that you install those versions only.\n   Component Required  Version       Java yes Java 7 and below not supported Java 8  supported Java 11 and above  limited supported           Eclipse SUMO yes* 0.32.0 and below not supported 1.0.1 to 1.6.0  supported above 1.6.0  not tested    OMNeT++ optional 5.4 and below not supported  5.5  supported 5.6 and above  not supported    INET optional 4.0 and below not supported  4.1  supported 4.2 and above  not supported    ns-3 optional 3.27 and below not supported 3.28  supported 3.29 and above  not tested    * All provided scenarios require SUMO to be installed. However, if a different traffic or vehicle simulator is coupled, SUMO is not certainly required.\nUpdate Eclipse MOSAIC In order to update Eclipse MOSAIC to a new version, please perform the following steps manually:\n Backup your personal simulation scenarios from MOSAIC\u0026rsquo;s scenarios directory. Remove your old MOSAIC installation completely. Install MOSAIC by extracting the current binary archive from above. Copy your simulation scenarios back to MOSAIC\u0026rsquo;s scenarios directory. Take care of possible updates of the used software and simulators from third party (see the Compatibility Matrix above).  ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"0d7696d24c78e212b3f7477df55bfbb6","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/","section":"docs","summary":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the link above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document.","tags":null,"title":"Download Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.g. traffic, communication, application, electricity, or other).\nEach of the simulators must implement an interface, the so-called Ambassador. The ambassador communicates with the actual simulator, which is represented by the Federate. For some cases, if the simulator is directly coupled with the RTI (e.g. Application, or cell), the ambassador also represents the federate. This architecture allows a simple coupling of own simulators.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TraCIProtobufEclipse MOSAIC RTIEclipse SUMOOMNeT++ApplicationAmbassadorSumoAmbassadorOmnetppAmbassador   The following simulators are coupled already with MOSAIC:\n table th:first-of-type { width: 26%; }     Domain Simulator Name Description     Application Simulation MOSAIC Application Application prototyping and simulation.        Traffic / Vehicle Simulation Eclipse SUMO Microscopic Traffic simulation.    PHABMACS Sub-microscopic vehicle simulation with 3D visualization. Documentation will be published soon.        Network / Communication Simulation OMNeT\u0026#43;\u0026#43; Event-based network simulator for ITS-G5 and cellular communication.    ns-3 Event-based network simulator for ITS-G5 and cellular communication.    MOSAIC Simple Network Simulator Simulator for ITS-G5 ad-hoc communication using simplified models.    MOSAIC Cell Simulator for cellular communication.        Environment Simulation MOSAIC Environment Environmental event simulation.        E-Mobility Simulation MOSAIC Battery Electric vehicle simulation.    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7998013f795ff6ddbb68d3d1e213effe","permalink":"https://www.eclipse.org/mosaic/docs/simulators/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/","section":"docs","summary":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.","tags":null,"title":"Overview","type":"docs"},{"authors":null,"categories":null,"content":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.bat -s \u0026lt;scenario-name\u0026gt; mosaic.bat -c .\\scenarios\\\u0026lt;scenario_name\u0026gt;\\scenario_config.json  CLI Options The Eclipse MOSAIC start script supports the following arguments:\n table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 80%; }     Option Description     -c\n--configuration The primary configuration file which is scenario dependent and located in the according scenario folder. This file transitively includes other necessary configuration files. Usually you will use the file \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json.   -s\n--scenario If the main configuration file of your scenario is located in the default scenario directory of MOSAIC (i.e. in \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json), this option can be used instead of the -c option by passing only the scenario name -s \u0026lt;scenario_name\u0026gt;.   -w\n--watchdog-interval The interval of the internal alive check (in seconds) which is used by MOSAIC to detect execution stalls. This parameter is not mandatory and it is also possible to turn off the watchdog (-w 0) for debug sessions.   -o\n--log-level Override all specified logging-levels. This option is useful for debugging simulations. For example logging every possible event would be done with -o TRACE.   -b\n--realtime-brake With this parameter, the simulation will be slowed down to a desired Real Time Factor, if possible. When simulations already run slower than real time, this factor will have no effect. For example, use -b 1 to execute the simulation in real time.   -r\n--random-seed The global random seed to set for the simulation run. This is usually defined in the scenario_config.json, but can be overridden using this option.   -v\n--start-visualizer Opens a page in your default browser which visualizes all vehicle movements of the simulation on a map. This option only works, if your scenario is configured with the Websocket Visualizer.   -h\n--help Prints a help screen.    While Eclipse MOSAIC is running, it prints some information on the command line:\n[user@gnulinux mosaic]$ ./mosaic.sh -s HelloWorld 2020-09-08 16:46:09,794 INFO ROOT - Running Eclipse MOSAIC 20.0-SNAPSHOT on Java JRE v1.8.0_202 (AdoptOpenJdk) 2020-09-08 16:46:09,941 INFO FederationManagement - Start federation with id 'HelloWorld' 2020-09-08 16:46:09,943 INFO FederationManagement - Add ambassador/federate with id 'application' 2020-09-08 16:46:09,944 INFO FederationManagement - Add ambassador/federate with id 'mapping' 2020-09-08 16:46:09,945 INFO FederationManagement - Add ambassador/federate with id 'sumo' 2020-09-08 16:46:09,946 INFO FederationManagement - Deploying federate 'sumo' locally in .\\tmp\\sumo 2020-09-08 16:46:09,962 INFO FederationManagement - Starting federate 'sumo' locally in .\\tmp\\sumo 16:46:17 - Simulating: 195000000000ns (195.0s / 1000.0s) - 19.5% (RTF:33.10, ETC:25.2s)  The current simulation progress is shown in the following format.\n current wall clock time current simulation time in [ns] and [s] progress in % Real Time Factor (RTF) and Estimated Time to Completion (ETC)  The RTF is the ratio of simulated time to simulation duration in wall clock time, e.g. a real time factor greater than 1.0 means, the simulation is running faster than real time. Both RTF and ETC are calculated based on the performance of the last five seconds of the simulation and should only give a rough overview, how long a simulation can take. Depending on the simulation setup, the values can differ heavily between start and end of a simulation.\nScenario Configuration The configuration of a simulation scenario consists of a detailed description for each coupled simulator. The main configuration file is found under scenario_config.json, which defines the list of coupled simulators:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  This way, simulators can be easily added or removed from the simulation. Each of the coupled simulators is configured in the directory of the scenario_config.json file. The release bundle comes with a set of tutorial scenarios, which are described in detail in the Tutorials section.\nGather results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time. Moreover, Eclipse MOSAIC offers uniformly formatted and visually prepared results using various  Visualizer implementations.\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7482da389f363e79fed6bdad86e18c99","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/","section":"docs","summary":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.","tags":null,"title":"Run a single simulation","type":"docs"},{"authors":null,"categories":null,"content":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.\nThe following file structure shows the minimum setup of a typical simulation scenario in Eclipse MOSAIC:\n└─ \u0026lt;scenarioName\u0026gt; ├─ application | └─ \u0026lt;scenarioName\u0026gt;.db................ Scenario database file ├─ mapping | └─ mapping_config.json ............. Mapping configuration file ├─ sumo | └─ \u0026lt;scenarioName\u0026gt;.net.xml .......... SUMO network file | └─ \u0026lt;scenarioName\u0026gt;.sumocfg .......... SUMO configuration file └─ scenario_config.json ............... Basic configuration of the simulation scenario  In addition to those files, each simulator need to be provided with their custom configuration files.\nMain Configuration The main configuration file of a scenario is scenario_config.json. In this file basic properties are configured, such as the name of the scenario, the random seed, and activated simulators. Such a file looks like the following:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } }, \u0026quot;network\u0026quot;: { \u0026quot;netMask\u0026quot;: \u0026quot;255.255.0.0\u0026quot;, \u0026quot;vehicleNet\u0026quot;: \u0026quot;10.1.0.0\u0026quot;, \u0026quot;rsuNet\u0026quot;: \u0026quot;10.2.0.0\u0026quot;, \u0026quot;tlNet\u0026quot;: \u0026quot;10.3.0.0\u0026quot;, \u0026quot;csNet\u0026quot;: \u0026quot;10.4.0.0\u0026quot;, \u0026quot;serverNet\u0026quot;: \u0026quot;10.5.0.0\u0026quot;, \u0026quot;tmcNet\u0026quot;: \u0026quot;10.6.0.0\u0026quot; } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  The following fields needs to be configured:\n  id - The name of the scenario\n  duration - The duration of the simulation in seconds.\n  randomSeed - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken.\n  projection - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting here is crucial to get correct results that map to real world coordinates so the simulation results can be visualized in some way. The center coordinate will be used to determine the correct UTM zone, the cartesianOffset can be determined by having a look at the traffic simulators network file, e.g. SUMOs *.net.xml contains this information in the netOffset attribute of the location tag.\n  network - Within this config the address resolution scheme is specified. The subnets for all unit types are described here. Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address space would be to small to provide enough addresses. In such cases, the netMask and all subnets have to be configured accordingly.\n  Last but not least, the federate tags define which simulators are active in the simulation.\n  Traffic Simulator Configuration The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. sumo . For example, the \u0026lt;scenarioName\u0026gt;.sumo.cfg describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:\n\u0026lt;configuration\u0026gt; \u0026lt;input\u0026gt; \u0026lt;net-file value=\u0026quot;MyScenario.net.xml\u0026quot; /\u0026gt; \u0026lt;route-files value=\u0026quot;MyScenario.rou.xml\u0026quot; /\u0026gt; \u0026lt;/input\u0026gt; \u0026lt;/configuration\u0026gt;  While the *.net.xml is a mandatory file to be placed within the sumo directory, the *.rou.xml is automatically generated by the SumoAmbassador when the simulation is started. More information on the configuration of SUMO can be found here.\nApplications and Mapping Vehicles Usually you want the simulated vehicles to be equipped with some kind of applications that influence the vehicles behavior. To do that you copy the jar files of your applications to the folder \u0026lt;scenarioName\u0026gt;/applicationNT . Having the applications in place you will have to create a mapping_config.json file in the folder \u0026lt;scenarioName\u0026gt;/mapping .\nThe following file would spawn 1 vehicle every five seconds (720 veh/hour divided by 3600 sec) until it reaches the max number of vehicles: 500. All the vehicles would be equipped with an application sending CA-messages periodically.\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ] }  Traffic lights If you want to simulate traffic lights equipped with applications, traffic lights should be defined in the simulator specific configuration file and also added to the mapping configuration file. The applications can be equipped by explicitly specifying them as \u0026ldquo;applications\u0026rdquo;\n{ \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp\u0026quot; ] } ] }  or by referring to previosly defined prototypes:\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle\u0026quot; ] }, { \u0026quot;name\u0026quot;: \u0026quot;TrafficLight\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ], \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  Please note that traffic light name and traffic light itself in the mapping file stand for a traffic light group controlling a whole junction. Traffic light group can consist of many individual traffic lights controlling an exact lane. The value of the \u0026ldquo;tlGroupId\u0026rdquo; key MUST coincide with the name of the traffic light group in the traffic simulator related configuration file (with tlLogic id for SUMO and with junction id for Phabmacs).\nFor SUMO, the description of traffic light groups and their programs can be found in scenarioname.net.xml:\n\u0026lt;tlLogic id=\u0026quot;26704448\u0026quot; type=\u0026quot;static\u0026quot; programID=\u0026quot;1\u0026quot; offset=\u0026quot;0\u0026quot;\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;GGrG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;yyry\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;rrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rryy\u0026quot;/\u0026gt; \u0026lt;/tlLogic\u0026gt;  mapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  More information on the mapping configuration can be found here.\nFor more information about how SUMO traffic lights work please refer to SUMO Traffic Lights.\nFor Phabmacs, one should create a separate configuration file containing the description of traffic light groups and traffic light programs.\nmapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  phabmacs_config.json:\n{ ... \u0026quot;ttlFile\u0026quot;:\u0026quot;berlinTrafficLights.ttl.json\u0026quot;, ... }  An example of how the traffic light configuration can look like in berlinTrafficLights.ttl.json:\n{ \u0026quot;programs\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;default\u0026quot;, \u0026quot;phases\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;duration\u0026quot;: 10, \u0026quot;groupStates\u0026quot;: [ \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot; ] }, { \u0026quot;id\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;duration\u0026quot;: 15, \u0026quot;groupStates\u0026quot;: [ \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot; ] } ], \u0026quot;transitions\u0026quot;: [ { \u0026quot;from\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;yellowPhaseDuration\u0026quot;: 3, \u0026quot;allRedPhaseDuration\u0026quot;: 3, \u0026quot;redYellowPhaseDuration\u0026quot;: 1 }, { \u0026quot;from\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;yellowPhaseDuration\u0026quot;: 3, \u0026quot;allRedPhaseDuration\u0026quot;: 6, \u0026quot;redYellowPhaseDuration\u0026quot;: 1 } ] } ], \u0026quot;junctions\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;signalGroups\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;K1\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51187173469569, \u0026quot;longitude\u0026quot;: 13.309426296977083 } }, { \u0026quot;id\u0026quot;: \u0026quot;K2\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.511666041314484, \u0026quot;longitude\u0026quot;: 13.3092408198885 } }, { \u0026quot;id\u0026quot;: \u0026quot;K3\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51155112036543, \u0026quot;longitude\u0026quot;: 13.30933672655086 } }, { \u0026quot;id\u0026quot;: \u0026quot;K4\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51200251720905, \u0026quot;longitude\u0026quot;: 13.30936414260184, \u0026quot;heading\u0026quot;: 180.0 }, \u0026quot;lanes\u0026quot;: [ 0 ] } ], \u0026quot;availablePrograms\u0026quot;: [ \u0026quot;default\u0026quot; ] } ] }  The applicationNT folder furthermore needs a generated database file \u0026lt;scenarioName\u0026gt;.db . This database file contains information about the road network (road topology) and all routes the vehicles can drive on. This file is usually generated by the tool scenario-convert, which is described here in detail.\nCommunication Simulator The configuration of the communication parameters are usually not dependent from the location of the road network. Therefore, most of the required files can be extracted from other scenarios, such Barnim or Tiergarten. Depending on the simulator you will need to configure the geographic extend of the simulation area. You can find that data in the traffic simulators network file, e.g. SUMOs *.net.xml contains this information in the convBoundary attribute of the location tag.\n For OMNeT++, it concerns the values of constraintArea in the omnetpp.ini For the Eclipse MOSAIC Cell simulator, the expansions do not need to be configured directly. However, the areas of the configured regions (in regions.json) have to be in line with the scenario location. The SNS also comes without an additional expansion definition.  Further information on the communication simulators can be found in: ns-3 SNS Eclipse MOSAIC Cell OMNeT++\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"911d7d211da284d47641d647331b899d","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/","section":"docs","summary":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.","tags":null,"title":"Simulation Scenarios","type":"docs"},{"authors":null,"categories":null,"content":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created. It runs in the browser and shows an OpenLayers Map with markers, indicating the positions of all vehicles, as well as overall the simulation progresses.\n Red vehicles are sending messages and green vehicles are receiving messages at that specific point of time in the simulation.   To start the visualization, simply open the bin/tools/visualizer.html in your browser. As soon as the page has finished loading all of its content, it starts trying to connect to the WebSocket created by the Eclipse MOSAIC simulation. The WebSocket is also enabled by default for the tutorial scenario Barnim. For more details see the file Barnim/visualizers/visualizer_config.xml.\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;visualizer id=\u0026quot;websocket\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.WebsocketVisualizerConfig\u0026quot;\u0026gt; \u0026lt;synchronized\u0026gt;true\u0026lt;/synchronized\u0026gt; \u0026lt;port\u0026gt;46587\u0026lt;/port\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageReception\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageTransmission\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;RsuRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;TrafficLightRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;/subscriptions\u0026gt; \u0026lt;/visualizer\u0026gt; \u0026lt;/configuration\u0026gt;  As soon, as the simulation is running, you should see vehicle markers moving around and indicating if they are sending V2X messages (green) or receiving V2X message (red).\nThe status bar at the bottom of the page indicates the current connection/simulation state. There are four possible states:\n Connecting - Trying to connect to the WebSocket opened by Eclipse MOSAIC. Simulating - Periodically fetching simulation data and updating markers accordingly. Simulation finished - The simulation has finished. Error - An error occurred. Either there was a problem caused by the WebSocket itself, or a timeout occurred while trying to connect to the WebSocket.  After the simulation has finished, you can click on the reconnect button and then run the simulation again. You can also start the visualization at each simulation run, using the command line parameter -v. In that case, Eclipse MOSAIC will automatically open the bin/tools/visualizer.html in your default browser once the simulation starts.\n By default, the WebSocket Visualizer does not work on Microsoft Edge. UWP (UniversalWindows Platform) apps onWindows 10 do not have direct network access but are subject to a network isolation for security reasons, preventing localhost loopback by default. WhileMicrosoft Edge itself does allow localhost access, it treats localhost as an Internet site, which leads to restrictions e.g. for IPC over IP. To prevent this, an exception for Edgemust be added to the network isolation via the following command in an elevated command prompt:\nCheckNetIsolation LoopbackExempt -a -n=\u0026quot;Microsoft.MicrosoftEdge_8wekyb3d8bbwe\u0026quot;    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"4ceda5b87ab93856c1c3520fdb9ecfb3","permalink":"https://www.eclipse.org/mosaic/docs/visualization/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/","section":"docs","summary":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created.","tags":null,"title":"WebSocket Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.g. for communication, traffic, and application simulations. For the synchronization and data exchange, the provided runtime infrastructure uses common concepts similar to ones defined in the High Level Architecture (HLA ) standard proposed by the IEEE. Simulators are integrated following the ambassador/federate principle and messages (we call them interactions) are used to implement the time synchronization and data exchange amongst them. Consequently, the runtime infrastructure allows a flexible combination of time-discrete simulators for V2X simulations and the like. Based on the varying requirements for specific use-cases, arbitrary simulators can be added to Eclipse MOSAIC and will be executed together.\nThis online documentations provides detailed information for the current release of Eclipse MOSAIC. The following objectives are target of this documentation:\n1.\u0026nbsp; Getting Started Download and installation.Learn more    2.\u0026nbsp; Run Simulations Run single simulation or simulation sets.Learn more    3.\u0026nbsp; Visualization Visualize and evaluate simulation results.Learn more    4.\u0026nbsp; Simulators Configure external and integrated simulators.Learn more    5.\u0026nbsp; Building Scenarios Build your own simulation scenarios.Learn more    6.\u0026nbsp; Create Applications Develop applications for the Application Simulator.Learn more    7.\u0026nbsp; Extending Eclipse MOSAIC Extend Eclipse MOSAIC.Learn more     ","date":1596672000,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1596672000,"objectID":"4cdd37113783e47641dd300543c94e1b","permalink":"https://www.eclipse.org/mosaic/docs/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/docs/","section":"docs","summary":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.","tags":null,"title":"Eclipse MOSAIC Documentation","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more detail.\n Cellular Communication Ad-hoc Communication  Depending on the needs of the application, there are different approaches to solve the communication issue in Eclipse MOSAIC simulations. However, a distinction must be made between inter vehicle communication and Vehicle-to-X communication. Also, it is possible to modify the selected communication mode dependent on requirements.\nGenerally, the following modes are available based on network:\nCellular Communication\n Geobroadcast Geocast Topocast  Ad-hoc Communication\n Geobroadcast Geocast Topobroadcast Topocast   Cellular Communication The cellular network is known from wireless mobile communication and the principle is to divide the entire geographic area into several smaller parts called \u0026ldquo;cells\u0026rdquo;. Each cell has a fixed-location transceiver with a coverage ratio.\nEclipse MOSAIC enables the communication with all the existing vehicles via Geobroadcast mode or direct communication via Geocast in a specific area (circular, rectangular). In contrast, the Topocast mode is not restricted to a specific area.\nCellular Geobroadcast The principle function of the Geobroadcast is to communicate with all entities within a geographical area. Eclipse MOSAIC offers the possibility to configure a specific geographical area which can be either a circular or a rectangular area.\nThe following figure illustrates a vehicle veh_2 which is communicating with the other vehicles(veh_1, veh_3) within a radius R.\n Illustration of Geobroadcast in a spezific circular area   A circular communication area can be defined with the geoBroadCast(GeoCircle geoCircle) from an Eclipse MOSAIC application, as shown below:\nGeoCircle transmissionArea = new GeoCircle(GeoPoint.latlon(52.5, 13.2), 3000); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  A rectangular destination area can be defined similarly:\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Geocast Compared to Geobroadcasting, a Geocast addresses a receiver with an unique address. Addressing can be in the form of an IP-Address or a receiver-ID (e.g. veh_0). Again, the communication area can be configured as circular or rectangular.\nAssume, the veh_1 has a message which is addressed to veh_2. In order to send the message, veh_1 first examines whether the vehicle with ID veh_2 is located within the transmission area. If this is the case, the message will be transmitted. In figure below is this situation illustrated.\n Cellular Geocast to address a receiver within a defined area   The following methods are provided for the configuring the transmission area (Circle or Rectangle) and the addressing to the receiver(hostname or ip address).\n geoCast(GeoCircle geoCircle, String receiverName)  geoCast(GeoRectangle geoRectangle, String receiverName) geoCast(GeoCircle geoCircle, byte[] ipAddress) geoCast(GeoRectangle geoRectangle, byte[] ipAddress)  GeoCircle transmissionArea = new GeoCircle( GeoPoint.latlon(52.5, 13.2), 3000); String receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().geoCast(transmissionArea, receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Topocast Compared to Geocast or Geobroadcast, the Topocast is totally independent of geographical conditions and the addressing can be in the form of an IP-Address or a receiver-ID.\nThe next figure illustrates how the veh_0 is communicating with veh_1 in Topocast mode.\n Topocast mode for direct addressing without geographical constraints   The code example below shows how we can configure the requirements of the communication in Topocast mode.\nString receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().topoCast(receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));   Ad-hoc Communication The Ad-hoc network does not rely on a pre-existing infrastructure. Provided that vehicles are equipped with Ad-hoc modules, they are able to communicate with each other dynamically. In case of a sufficient number of Ad-hoc equipped vehicles, a message can be transferred via hops quickly over a long distance.\nEclipse MOSAIC also enables the communication via a specific Ad-hoc channel within the wireless Ad-hoc network. However, the Ad-hoc channels for vehicular communication are limited and standardized by the IEEE 802.11p. The licensed frequency band 5.9 GHz (5.85-5.925 GHz) for Intelligent Transportation Systems(ITS) will be used as Ad-hoc channels.\nThe following table shows the possible channels on the 5.9 GHz band used for V2X communication.\n   Channel Number 0 1 2 3 4 5 6     Channel Name SCH1 SCH2 SCH3 CCH SCH4 SCH5 SCH6   Frequency Band 5.86 5.87 5.88 5.89 5.9 5.91 5.92    Configuring AdHoc Capabilities The first step to enable your application to use Ad hoc capabilities, is to make sure it extends the AbstractSimulationUnit-class or one of its child-classes (e.g. VehicleUnit, ChargingStationUnit) found in package org.eclipse.mosaic.fed.application.ambassador.simulation. Additionally, if you want your application to act upon the reception or transmission of messages, make sure it implements the interface CommunicationApplication.\nOnce this is done, make sure to configure and enable the AdHoc-module in your application. Below is an example configuration taken from the Tiergarten-tutorial. Instead of configuring the .power(...)[mW] it is also possible to configure a .distance(...)[m].\n// Example of AdHocConfiguration (see TiergartenVehicle.java) @Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio() .channel(AdHocChannel.CCH) .power(50) .create()); }  Ad-hoc Topobroadcast In Topobroadcast mode, the communication between vehicles is regardless of the geographic conditions. However, the communicating entities must be operated on the same Ad-hoc channel and there are two options to use the Topobroadcast:\n Singlehop Multihop  Singlehop approach in Topobroadcast For Singlehop, it is not necessary to specify the number of hops explicitly which indicates the lifespan of a message, because in Singlehop, any message has a lifespan of hop = 1. Moreover, Eclipse MOSAIC allows to use the default method topoBroadCast() which automatically assigns a Control Channel (CCH) for the simulation entity and a lifespan based on the Singlehop principle. Alternatively you can use the non-default method topoBroadCast(AdHocChannel) in order to specify the Ad-hoc channel.\nBelow are some configuration examples of the default addressing method topoBroadCast() and non-default addressing method topoBroadCast(AdHocChannel).\nMessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  The following figure shows a simplified model based on the Singlehop principle. The veh_1 sends messages to all simulation entites(RSU, veh_2) that are using the same Ad-hoc channel. After transmission, the message can no longer be forwarded by the receiver.\n Overview Singlehop with specified Ad-hoc channel   Multihop approach in Topobroadcast In Multihop, the lifespan (amount of hops) of a message can be specified, allowing larger communication distances.\nThe following figure shows a Multihop example with a data package D (M, h = 2) from the vehicle veh_0 which contains a message M and a hop number h = 2. Assuming that a lot of simulation entities are using the same Ad-hoc channel the message can be forwarded over a along distance. After each forward the hop number will be incremented by 1. Since the hop amount was set to 2, the forwarding will stop after 2 increments.\n Overview Multihop principle   The next code snippet shows a configuration example with an Ad-hoc channel and a message lifespan hops = 2.\nAdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel, hops); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));   In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a routing protocol in network simulators (OMNeT++, ns-3). But the built in communication simulator SNS includes a simple routing protocol “Flooding”.\n  Ad-hoc Topocast In addition to the Topobroadcast, the communication in Topocast mode will be addressed explicitly to the recipient and the addressing can be done either through receiver name (vehicle-ID e.g. veh_0) or the IP-Address of the vehicle.\nfinal byte[] ipv4Address = {127,36,50,4}; AdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoCast(ipv4Address, hops, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geobroadcast In contrast to Cellular Network above, the simulation entities act as active communication part (transmitter and receiver) and all simulation entities within range are getting messages in Geobroadcast mode.\nAs example in the following illustration, The vehicles veh_0, veh_2, veh_3 and the RSU are Ad-hoc equipped and there is no vehicle in the communication range of RSU, therefore a hop is not possible to next vehicle veh_0. But the vehicles veh_2 and veh_3 are able to communicate with each other.\n Principle of Ad-hoc Geobroadcast mode   With the methods\n geoBroadCast(GeoCircle geoCircle) geoBroadCast(GeoRectangle geoRectangle)  of the Eclipse MOSAIC class AdHocMessageRoutingBuilder ,we are able, to configure the required area as a circle or a rectangle.\nGeoPoint center = GeoPoint.latlon(52.5, 13.2); GeoCircle adHocModule = new GeoCircle(center, 3000); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(adHocModule); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Analogous to the examples above, we can also configure the transmission area as a rectangle.\nThe next code snippet illustrates a possible configuration with a rectangular transmission area and a specified Ad-hoc channel.\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); final double radius = 3000.0; GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(transmissionArea, AdHocChannel.SCH1); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geocast The class AdHocMessageRoutingBuilder only has one method for Geocasting mode, geoCast(DestinationAddress destinationAddress, AdHocChannel adHocChannel). Communication is possible if the IP-address of receiver is known and both (receiver and transmitter) are on the same Ad-hoc channel.\n In this context the name Geocast is misleading, because a geological condition is not necessary.\n  As you can see in the next picture, the RSU uses the Ad-hoc channel SCH1 and several vehicles use different Ad-hoc channels. Assuming the RSU tries to send a message to veh_1 and has knowledge about the IP-Address of veh_1, if the vehicle veh_1 also uses the same channel SCH1, the transmission will be completed successfully.\n Ad-hoc Geocast communication between entities using the same channel   Below you can see a possible configuration.\nfinal byte[] ipv4Address = {127,36,50,4}; DestinationAddress destAddress = new DestinationAddress(ipv4Address); AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoCast(destAddress, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  CAM - Implementation A Cooperative Awareness Messages (CAM) consists of four parts:\n Header with generic information MessageBody ServiceList TaggedValue list  First of all, generic information like protocol version, creation time stamp are submitted. Normally this data set follows a network beacon, which already contains data like position and speed. Nevertheless, this functionality must be implemented in the network layer, that means in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body can contain either RSU or Vehicle awareness data. In the first case, only the RSU type is submitted, but this probably changes with a new CAM specification. In the second case, we provide date like vehicle width, length, position, speed, type and heading. The specification is not completely implemented, especially acceleration data and light, brake status are missing. The third part of the CAM specification, the service list, is also not implemented. This will probably change, when a list of services is defined by the ETSI. Last but not least a message contains a tagged list, a key value map with optional data. This is fully implemented and is used for our traffic light CAM messages, which provide the traffic light status in such a list.\nUser defined tagged values If you are required to exchange custom data within CAMs, the field UserTaggedValue can be used. For adding such data to the CAM, the application needs to implement the method beforeGetAndResetUserTaggedValue() from the CommunicationApplication interface. If a CAM is about to be sent, the custom data can be set using the getOs().setUserTaggedValue(byte[]) method. The receiver can simple access the data by accessing the field directly from the received CAM message:\nbyte[] value = cam.getUserTaggedValue (); if (value != null) { // read user tagged value} }  Timing Requirements CAMs are generated by the CAM Management and passed to lower layers when any of following rules apply:\n maximum time interval between CAM generations: $1s$; minimum time interval between CAM generations: $0.1s$; generate CAM when absolute difference between current heading (towards North) and last CAM heading \u0026gt; $4 deg$; generate CAM when distance between current position and last CAM position \u0026gt; $5m$ generate CAM when absolute difference between current speed and last CAM speed \u0026gt; $1ms$; These rules are checked latest every $100ms$;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"d32a5f22c5ae5d143ef2bc4c35a326c8","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/communication/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/develop_applications/communication/","section":"docs","summary":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell.","tags":null,"title":"Communication in Applications","type":"docs"},{"authors":null,"categories":null,"content":"The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.\nAttributes of Event The class Event contains the following attributes:\n long time: defines the time when the execution of the event is triggered. long nice: defines the priority of the event. When multiple events are scheduled for the sametime, the events are ordered in ascending order. List\u0026lt;EventProcessor\u0026gt; processors: is a list of components that shall process the event. Object resource: is an object that contains additional information designated for the processor of the event. The resource can be any object.  Methods of Event  Event(): There are multiple constructors for Event with different parameters. Every constructor sets default values for the attributes that are not defined by the arguments of the constructor. Event newTime(long time): allows the creation of a new event with a new execution time based String getResourceSimpleClassName(): returns the class name of the resource as String. int compareTo(Event event): implements the standardized Java interface Comparable. Toorder the events, first the time of the event is evaluated. In case the times are equal, the priority of the events is compared.  Interface EventManager The interface EventManager defines the method void addEvent(Event event) that needs to be implemented to add an event to the execution.\nInterface EventScheduler The interface EventScheduler extends the interface EventManager and is used for classes that trigger events.\nMethods of EventScheduler  boolean isEmpty(): returns true if the scheduler contains no elements, otherwise it returns false. long getNextEventTime(): returns the time of the next event. long getScheduledTime(): returns the time when the last event has been executed. List\u0026lt;Event\u0026gt; scheduleEvents(long time): returns a list of objects that are scheduled for a certain simulation time. Set\u0026lt;Event\u0026gt; getAllEvents(): returns a set of all events that are considered by the scheduler.  EventSchedulerImpl The class EventSchedulerImpl is an implementation of the interface EventScheduler.\nInterface EventProcessor The interface EventProcessor defines how the execution module gets the events. The execution module therefore has to implement the following methods:\n void processEvent(Event event): The module processes the event. boolean canProcessEvent(): returns true when the module is currently able to process new events, otherwise it returns false.  InterceptedEvent Class EventInterceptor In some situation it is useful to intercept events before they actually reach the intended processors. By intercepting the events it is possible to apply further monitoring and to filter which events the event processors receive. The class EventInterceptor is used to construct objects of the type InterceptedEvent. In the constructor it is possible to specify an EventManager that manages the intercepted events. Moreover, objects of the type EventProcessor can be specified that shall process the intercepted events.\nClass InterceptedEvent The class InterceptedEvents extends the class Event. It is used to provide type safe allocations of events that shall be intercepted.\n","date":1565481600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565481600,"objectID":"77fcc6d6f359287fbc8c37d7e6c54048","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/","publishdate":"2019-08-11T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/event_scheduler/","section":"docs","summary":"The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event.","tags":null,"title":"Event Scheduling","type":"docs"},{"authors":null,"categories":null,"content":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the Eclipse MOSAIC Application Simulator requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the applicationNT folder of the scenario. This database consists of the following tables:\nDatabase tables    Database Name Description     Node Contains all Nodes of the road network such as junctions and nodes describing the geometry of a road. Each node is identified by an unique ID (long).(refer to http://wiki.openstreetmap.org/wiki/Node)   Way Provides various properties for each way of the road network.(refer to http://wiki.openstreetmap.org/wiki/Way   WayConsistsOf Provides a list of nodes for each way of the road network.   Connection Contains a list of all connections of the road network including the way it originally is part of. Each connection describes an directed edge between two junctions in the road network.   ConnectionConsistsOf Provides a list of nodes each connection consists of.   Restriction Provides information about turn restrictions. Each turn restriction is described by a from-connection, a via-node, and a to-connection. This data is used for route calculation purposes.   TrafficSignals Contains detailed information about traffic lights and their signalling program. Currently not used.   Route Contains a list of all routes known for the simulation scenario. All routes referenced in the Mapping configuration must be presentin this table.   Building Corner Wall Provides information about buildings alongside the road network, e.g. for visualization purposes or sophisticated communication simulation models.   Version Contains the version of the Eclipse MOSAIC installation which was initially used to create the database.    Road network model This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A node is either a junction or describes the geometry of a road. A connection is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating way, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.\n Nodes and connections of the road network   Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern aaa_bbb_ccc):\n aaa - ID of the originating way bbb - ID of the node the connection starts at. ccc - ID of the node the connection ends in.   ID of connection in road network   Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:\nEdges are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern aaa_bbb_ccc_ddd):\n aaa_bbb_ccc - ID the connection the edge belongs to. ddd - ID of the node the edge starts at.   Structure of the Edge-ID   Lanes are described by an edge and a lane index. The identifier of a lane consists of two parts (using the string pattern aaa_bbb_ccc_ddd_e):\n aaa_bbb_ccc_ddd - ID the edge the lane belongs to. e - Index of the lane, starting by 0 (leftmost lane).   Structure of the Lane-ID   ","date":1565049600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565049600,"objectID":"1d92f8a189d6829395465481d4b2ddad","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/road_traffic/","section":"docs","summary":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates.","tags":null,"title":"Scenario Database","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"ad9ca34c3728e0522fcf5122cbadab93","permalink":"https://www.eclipse.org/mosaic/group/fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/fokus/","section":"group","summary":"The **Fraunhofer Institute for Open Communication Systems (FOKUS)** is the leading group behind the simulation framework Eclipse MOSAIC, which has now been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners and researches to test smart mobility services and intelligent traffic scenarios.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.\nOne example output could be the following:\nCELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000 V2X_MESSAGE_TRANSMISSION;6000000000;DENM;3;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;7000000000;veh_0;35.501624617716296;186.33236029307432;52.655993308955196;13.569065826100868;0.0;35.501624617716296;-0.6083753822837039;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_REGISTRATION;7000000000;veh_1;ElectricVehicle;null;Unequipped;5.0;2.5;70.0;2.6;4.5;0.5;1.0;1.0;0.0;1;1;0.0 VEHICLE_UPDATES;8000000000;veh_0;34.978651295430026;186.33236029306624;52.65568017869267;13.569019012494635;0.0;70.48027591314633;-0.5229733222862691;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false V2X_MESSAGE_TRANSMISSION;8000000000;DENM;4;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;9000000000;veh_0;35.73455352933612;186.33236029306624;52.65536028153272;13.56897118787549;0.0;106.21482944248245;0.7559022339060917;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_UPDATES;9000000000;veh_1;35.52345835176762;186.33265000325784;52.65599046030636;13.569112899208802;0.0;35.52345835176762;-0.5865416482323766;0.0;false;1;4067968_28830219_3290027832_2450938914;1;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false  Configuring the FileOutput  The main configuration file is located at \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenarioName\u0026gt;/output/output_config.xml  Basic configuration The following listing shows a basic example for the configuration of the FileOutput:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;filename\u0026gt;output.csv\u0026lt;/filename\u0026gt; \u0026lt;directory\u0026gt;.\u0026lt;/directory\u0026gt; \u0026lt;separator\u0026gt;;\u0026lt;/separator\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;...\u0026quot;\u0026gt; ... \u0026lt;/subscription\u0026gt; ... \u0026lt;/subscriptions\u0026gt;\u0026gt; \u0026lt;/output\u0026gt;  Basic configuration parameters for FileOutput\nThe usage of the parameters is described in the following table:\n   Parameter Usage     id Sets the id for the output   enabled If set to \u0026ldquo;false\u0026rdquo;, output is not used (default value is \u0026ldquo;true\u0026rdquo;)   update Sets the update interval in seconds for the output   start Sets the start time in seconds for visualization. This has nothing to do with the run time of the actual simulation   end Sets the end time in seconds for visualization. This has nothing to do with the run time of the actual simulation   loader Sets where the output is loaded from using the Java-class (see previous listing)    Basic Configuration of file output\nInteraction record Each interaction record is derived from a certain interaction type and composed of several entries,which are separated by Element separator.\nThe configuration of the file output is explained at the example of the VehicleUpdates interaction:\n\u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;\u0026gt; \u0026lt;entries\u0026gt; \u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Name\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Speed\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Longitude\u0026lt;/entry\u0026gt; \u0026lt;/entries\u0026gt; \u0026lt;/subscription\u0026gt;  Specific Configuration for interaction\n Attribute id indicates the interaction type, namely the class name of the interaction. The element entries defines the format and content of the finally visualized subscription record. The element entries is composed of several sub-elements entry, which correspond to columns of a subscription record and the sequence of the columns is the same as that of sub-elements entry.  In total, there are three basic types of entries:\nConstant Every quoted entry is defined as a constant. The content inside the quotation will be directly written into each corresponding interaction record.\n\u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt;  An example for constant type entry\nBasic method The Basic method type accesses values of the interaction object by using the appropriate getXXX() methods. For an entry, the root object for method invoking is the corresponding interaction class, here VehicleUpdates. As this object provides the simulation time by calling the getter method getTime(), the entry Time retrieves the requested value. If a null object is returned before the last method of cascaded methods is invoked, then null will be written to the corresponding field.\n\u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt;  An example for constant type entry\nIteration \u0026lt;entry\u0026gt;Updated:Id\u0026lt;/entry\u0026gt;  An example for method type entry with iteration\nThe first part of this example is Updated , which means to invoke the getUpdated method of class VehicleUpdates. Then a list of VehicleInfo objects is returned. The character : indicates the iteration, which means that for each of the VehicleInfo objects in the returned list the getId method is invoked.\nCascading \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt;  An example for method type entry with iteration and cascading\nIn this example, there is a dot operation, which is a cascade operation. Here getPosition method of VehicleInfo class is called and a GlobalPosition object is returned. Then we continuously invoke the getLatitude method of this GlobalPosition object.\nExtended Method All the methods involved above are the basic methods. There also is some functionality, which we cannot extract from these existing methods. So an extended method set is offered to meet these requirements and also as an extension point in the future.\n\u0026lt;entry\u0026gt;TimeInSec\u0026lt;/entry\u0026gt;  An example for simple extended method type entry\nWith existing methods of VehicleUpdates and its super class Interaction, we cannot get the timestamp of a interaction in second. (only Interaction.getTime, which returns a time in ns, is available). Here, getTimeInSec is a method extension for Interaction class. The extended method set will be listed later.\nFurther details The method type of entry definition supports cascaded iteration as follows:\n\u0026lt;entry\u0026gt;List1:List2:Id\u0026lt;/entry\u0026gt;  An example for cascaded iteration\nIt is possible to handle several different iterating operations, coming from the entry definition:\n\u0026lt;entry\u0026gt;Senders:Id\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Receivers:Id\u0026lt;/entry\u0026gt;  An example for multi-level iteration\ngetSenders() and getReceivers() are two different iterations. In this case, a combination of both Ids from the lists will be generated. The result may look like this:\nsender1, receiver1 sender1, receiver2 sender2, receiver1 sender2, receiver2  Output result of the above listing\nNote: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.\nAdditional features Limit output on time frame You can configure the FileVisualizer to write out interactions within a specific frame of simulation time. This can be configured by setting the start and end attributes accordingly:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; start=\u0026quot;300\u0026quot; end=\u0026quot;1000\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; ... \u0026lt;/output\u0026gt;  An example for restricting visualization of interactions within a time frame\nCompress Output The tag \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; can be added to the output configuration, in order to compress the output using gzip compression. This feature is suitable for large-scale scenarios with many outputs.\n\u0026lt;output id=\u0026quot;fileVisualizer\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; ... \u0026lt;/output\u0026gt;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"8a0ce6620232f8de93a82bc2989cf5de","permalink":"https://www.eclipse.org/mosaic/docs/visualization/filevis/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/filevis/","section":"docs","summary":"The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file.","tags":null,"title":"FileOutput","type":"docs"},{"authors":null,"categories":null,"content":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.\nEclipse MOSAIC Application Simulator The Application Simulator plays an important role in the simulation of vehicles and its functions. It provides the capability to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others) as well as possible interaction attempts between the units via different communication links.\nFolder Structure └─ \u0026lt;scenario_name\u0026gt; ├─ application | ├─ YourApplication.jar | ├─ application_config.json ............. Configuration file for the ambassador. | └─ \u0026lt;scenario_name\u0026gt;.db .................. Database file for navigation. └─ mapping └─ mapping_config.json ................. Configuration file for the ambassador.  This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenario_name\u0026gt;/application/application_config.json. However, it is not necessary to provide such file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.\nOverview Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application Mapping). The applications for the units are basically compiled JAVA classes, which extend the abstract class AbstractApplication. Those classes have to be deployed as pre-compiled JAR files into the application folder of the simulated scenario.\n  Overview of interaction between applications and the unit\u0026rsquo;s operating system with its modules. An example V2X message propagation is presented.   Application Operating System The AbstractApplication possesses a unit-specific OperatingSystem, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like slowDown() for vehicles).\nAs the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules NavigationModule (Navigation + Routing for vehicles) / RoutingModule (Routing-only for static units) and AdHocModule / CellModule with APIs dedicated to their purpose.\nThe following table lists all modules a unit\u0026rsquo;s operating system could provide.\n   Module Description     NavigationModule Full featured access to the central navigation component for vehicles   RoutingModule Access to routing functionalities for static units as RSUs   AdHocModule Communication via ad hoc mode, using WIFI or ITS G5 specific means (e.g. for addressing)   CellModule Communication via cellular services (different configuration / addressing modes)    Note: The presented communication modules AdHocModule, CellModule are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the CommunicationApplication.\nApplication Interfaces Application interfaces handle call-backs to incoming events via their methods, like onVehicleUpdated(), called by the application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the \u0026ldquo;Provides\u0026rdquo; column. The elementary interface (Application) provides the methods onStartup(), onShutdown(). Implementation details are given in Development of applications.\n   Interface Applicable to Provides Description     Application / AbstractApplication all onStartup, onShutdown Elementary application class providing an operating system   ConfigurableApplication all  Basic application class providing an operating system and a configuration, which automatically loaded from a JSON file.   CommunicationApplication all onMessageReceived, onAcknowledgementReceived, onCamBuilding, onMessageTransmitted All applications that implement some form of V2X communication are to implement this interface.   VehicleApplication vehicle onVehicleUpdated General vehicle funtionality   ElectricVehicleApplication vehicle onBatteryStateUpdated, onChargingRequestRejected Electric vehicle functionality   TrafficSignAwareApplication vehicle onTrafficSignInvalidated, onTrafficSignNoticed Used by vehicles which are aware of traffic signs.   TrafficLightApplication traffic light onTrafficLightGroupUpdated Traffic light functionality   TrafficManagementCenterApplication TMC onInductionLoopUpdated, onLaneAreaDetectorUpdated Traffic management functionality   MosaicApplication all onSumoTraciResponded, onInteractionReceived Features that involve customized RTI-interactions of MOSAIC    Note: A roadside unit (RSU) is the most unit and usually communicates only. Thus, an RSU application implements CommunicationApplication.\n Configuration The Application simulator is configured in the file \u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ \u0026quot;messageCacheTime\u0026quot;: \u0026quot;30s\u0026quot;, \u0026quot;minimalPayloadLength\u0026quot;: 200, \u0026quot;encodePayloads\u0026quot;: true, \u0026quot;navigationConfiguration\u0026quot; : { \u0026quot;type\u0026quot;: \u0026quot;database\u0026quot; } }  Furthermore, depending on the deployed applications, the applications itself may offer configuration options in custom configuration files (e.g. ETSIApplication.json or ETSIApplication_veh_0.json).\n Eclipse MOSAIC Mapping Closely related to the Application Simulator, the Mapping Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:\n number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator) specific application(s) to be \u0026ldquo;mapped\u0026rdquo; on the simulation units and simulated in the Application Simulation  The JSON based configuration is located in \u0026lt;scenario_name\u0026gt;/mapping/mapping_config.json.\nConfiguration The Mapping configuration is divided into different parts:\n Pre Definitions of prototypes and deviations Entity Definitions of vehicles, rsus, tls and tmcs Advanced Vehicle Definitions (including route generation) in matrixMappers Common Definitions in config  Prototypes prototypes define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CamVehicle\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;length\u0026quot;: 5.00, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp\u0026quot; ] } ]  Prototypes can be created for all types of entities. Next to the list of applications which is available for all types of entities, vehicle types provide various other parameters to be adjusted.\n   Parameter Description Deviation     vehicleClass The class of the vehicle, e.g. Car, ElectricVehicle, EmergencyVehicle, Bicycle, HeavyGoodsVehicle, and more.    accel The maximum acceleration of the vehicle in $m/s^2$. Yes   decel The maximum deceleration of the vehicle in $m/s^2$, e.g. when stopping for traffic lights. Yes   emergencyDecel The maximum deceleration of the vehicle in $m/s^2$, in order to avoid accidents.    length The length of the vehicle in $m$. Yes   maxSpeed The maximum speed of the vehicle in $m/s$. Yes   minGap The minimum gap towards the leader in $m$, i.e. the space in front in a traffic jam. Yes   sigma The driver\u0026rsquo;s imperfection $[0,1]$.    tau The reaction time (or time headway) of the vehicle in $s$. Yes   speedFactor This factor is used to determine the speed limit to comply on roads, e.g. 1.1 would exceed the speed limit by 10%. Yes   laneChangeMode The lane changing behavior of the vehicle: COOPERATIVE. CAUTIOUS, AGGRESSIVE, PASSIVE, OFF    applications The list of applications to map onto this vehicle type.     For the majority of the parameters above (see column \u0026ldquo;Deviation\u0026rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate deviations attribute must be added to the type:\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;length\u0026quot;: 5.0, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;deviations\u0026quot;: { \u0026quot;length\u0026quot;: 1.2, \u0026quot;maxSpeed\u0026quot;: 5.0 } } ]  According to the config above, the basic Parameter value conforms to the expected value and the given value in the deviations attribute conforms to the $\\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\\sigma$.\nEntities Vehicles\nThe vehicles-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.\nEach spawner in this list generates a traffic stream of vehicles on a certain route. The vehicles stream begins at startingTime and generates vehicles until maxNumberVehicles is reached. The time between two consecutively vehicles is implicitly given by the targetFlow property, which defines how many vehicles per hour are going to spawned.\nEach vehicle spawner must refer to at least one vehicle type (types). A vehicle type must either refer to a type from the prototypes section by using its name, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the types attribute, weights can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, invididual vehicle types are assumed to be distributed equally. Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.\n\u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;NormalVehicle\u0026quot;, // this vehicle has no applications \u0026quot;applications\u0026quot;: [ ], \u0026quot;weight\u0026quot;: 0.2 } ] } ]  Additional notes:\n The route refers to a route usually defined in the scenario database file (*.db) of the scenario. In order to define only one single vehicle to be spawned, the maxNumberVehicles property can be set to 1. By defining the endingTime property, the flow is stopped from being generated when the given simulation time is reached. By defining the spawningMode to one of the following values, the departure time of the individual vehicles can be adjusted:  CONSTANT - default case, all vehicles have equal time distance to match target_flow. POISSON - vehicles depart within a Poisson distribution, resulting in a more natural traffic flow. GROW - the flow of departing vehicles increases linear up to target_flow. SHRINK - the flow of departing vehicles decreases linear starting at target_flow. GROW_AND_SHRINK - the flow of departing vehicles increases up to target_flow and decreases afterwards.   By defining the laneSelectionMode to one the following values, the selection of the departure lane can be adjusted:  DEFAULT - selects the lane for the next vehicle based on the list of given lanes in a roundrobin manner. ROUNDROBIN_HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to DEFAULT. HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to BEST. RANDOM - the vehicle will be placed randomly on one of the available lanes of the road. FREE - the vehicle will be placed on a free lane of the road. BEST - the vehicle will be placed on the best lane of the road, according to the current traffic situation and departure speed.    Road Side Units\nThe rsus-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (lat, lon coordinates). Referring to prototype definitions with simply specifying its name in the name property will automatically fill in relevant properties of the RSU.\n\u0026quot;rsus\u0026quot;: [ { \u0026quot;lat\u0026quot;: 52.65027, \u0026quot;lon\u0026quot;: 13.54500, \u0026quot;name\u0026quot;: \u0026quot;WeatherServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.barnim.WeatherServer\u0026quot; ] } ]  Traffic Lights\nIn the trafficLights-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The tlGroupId-property allows mapping of applications to the traffic light groups, referring them by Id.\nAlternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.\n\u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp\u0026quot; ] }, { \u0026quot;tlGroupId\u0026quot;: \u0026quot;252864802\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp\u0026quot; ] } ]  For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to Simulation Scenarios - Traffic Lights.\nTraffic Management Centers\nThe tmc-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).\n\u0026quot;tmcs\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;HighwayManagement\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ \u0026quot;detector_0\u0026quot;, \u0026quot;detector_1\u0026quot;, \u0026quot;detector_2\u0026quot; ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ]   All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.\n Use Type Distributions in Complex Traffic Scenarios In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them again and again, you can use typeDistributions. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.\nInstead of defining an equal list of types and weights for each single vehicle spawner, like in this example:\n\u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] } ]  \u0026hellip; you can use typeDistributions to define the distribution of types for each vehicle once and reuse them:\n\u0026quot;typeDistributions\u0026quot;: { \u0026quot;exampleTypeDist\u0026quot; : [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; } ]  Advanced vehicle spawners with route generation It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the matrixMappers-list. Each MatrixMapper consists of a list of points, the vehicle-types to be used and the actual flow-values (odValues) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.\nThe MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.\n\u0026quot;matrixMappers\u0026quot;: [ { \u0026quot;points\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CityA\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 52, \u0026quot;longitude\u0026quot;: 13 }, \u0026quot;radius\u0026quot;: 1000 } }, { \u0026quot;name\u0026quot;: \u0026quot;CityB\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 48, \u0026quot;longitude\u0026quot;: 10 }, \u0026quot;radius\u0026quot;: 1000 } } ], \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot; } ], \u0026quot;odValues\u0026quot;: [ [0, 100], //100 vehicles from CityA to CityB [200, 0] //200 vehicles from CityB to CityA ] } ]  Common Configuration Next to the specific configuration of prototypes and simulation entities, some general parameters can be adjusted:\n{ \u0026quot;config\u0026quot;: { \u0026quot;scaleTraffic\u0026quot; : 1.0, \u0026quot;start\u0026quot;: 0, \u0026quot;end\u0026quot;: 500, \u0026quot;adjustStartingTimes\u0026quot;: false, \u0026quot;randomizeFlows\u0026quot;: false, \u0026quot;randomizeStartingTimes\u0026quot; : false, \u0026quot;randomizeWeights\u0026quot;: false } }     Parameter Description     scaleTraffic Scales the targetFlow of spawned vehicles per hour as well as the maxNumberVehicles by the given factor.   start Adjusts the point in time (in $s$) to start spawning vehicles. Any vehicle spawner with a lower startingTime will be ignored.   end Adjusts the point in time (in $s$) to end spawning vehicles. Any vehicle spawner with a greater startingTime will be ignored.   adjustStartingTimes If set to true, the starting time of each spawner is reduced by the value in start.   randomizeFlows If set to true, the departure time of vehicles within a vehicle spawner is slightly randomized.   randomizeStartingTimes If set to true, the starting time of each vehicle spawner is slightly randomized.   randomizeWeights If set to true, each weight greater than zero is slightly randomized.    Unit Identifiers Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.\n   Traffic Object Eclipse MOSAIC Internal ID     Vehicle veh_\u0026lt;seq_nr\u0026gt;   RSU rsu_\u0026lt;seq_nr\u0026gt;   TMC tmc_\u0026lt;seq_nr\u0026gt;   Traffic Light tl_\u0026lt;group_id\u0026gt;     seq_nr is the sequence number of simulated vehicles, RSUs, TMCs, each starting from zero. group_id is the group id of the traffic light.   ##Basic Applications\nEclipse MOSAIC is shipped with several example applications which can be loaded on the vehicles. Next to the applications shipped with the tutorial scenarios Barnim and Tiergarten, there are further example applications to be found on our website.\nAdditionally, we provide an ETSI conform application which implement specific CAM generation rules for vehicles (org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp), which is described in the following:\nETSI Application for vehicles This application generates ETSI data for its simulation unit (e.g. heading, position, speed and time for vehicles). According to its configuration, the application then sends out CAMs to other vehicles in range. Note that the messages are only send when the time lies between the configured minimum and maximum interval.\nCurrently, the default configuration (ETSIApplication.json) for the ETSI application looks like this:\n{ /* The maximum time offset (here 1 second) of sending CA-messages * (the offset will be different for every single vehicle to avoid interference) */ \u0026quot;maxStartOffset\u0026quot;: 1000000000, /* CAMs are sent at most every 1 second */ \u0026quot;minInterval\u0026quot;: 100000000, /* CAMs are sent at least every 1 second */ \u0026quot;maxInterval\u0026quot;: 1000000000, /* CAMs are sent when the position of the vehicle changes at least about 4 meters */ \u0026quot;positionChange\u0026quot;: 4, /* CAMs are sent when the heading of the vehicle changes at least about 4 degrees */ \u0026quot;headingChange\u0026quot;: 4, /* CAMs are sent when the velocity of the vehicle changes at least about 0.5 m/s */ \u0026quot;velocityChange\u0026quot;: 0.5 }  The CAMs sent out by this application consist of four parts:\n Header with generic information MessageBody TaggedValue list  First of all, generic information like protocol version and creation time stamp are transmitted. Normally this data set follows a network beacon, already containing data like position and speed. Nevertheless this functionality must be implemented in the network layer, i.e. in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body contains vehicle awareness data, including data like vehicle width, length, position, speed, type and heading. However, the specification is not completely implemented. Last but not least a message can contain optional data.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"bf25e52bde5c4e80a5aa654a38a7b644","permalink":"https://www.eclipse.org/mosaic/docs/simulators/application_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/application_simulator/","section":"docs","summary":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.","tags":null,"title":"Application Simulator","type":"docs"},{"authors":null,"categories":null,"content":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.\nHowever, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results, Eclipse MOSAIC offers different Visualizers. For example, the FileVisualizer generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"c60b5956ddd6a163875c0dc191dc8c6e","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/run_mosaic/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/run_mosaic/","section":"docs","summary":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.","tags":null,"title":"Run a simulation with Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"  The tool scenario-convert is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.\nIt will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation, route calculation\u0026hellip;).\nBased on a MOSAIC database, scenario-convert can export the data to SUMO-conform formats. Furthermore one can choose, whether to use routes generated by scenario-convert, use existing routes or build own routes via route generation tools (e.g. DUAROUTER by SUMO).\nThis chapter intends to highlight the most common workflows for the work with scenario-convert. We will be using this OSM-file for most of the use cases So feel free to follow along with the steps to get a better understanding on how the scenario-convert-script functions. For a complete reference of the script please check here.\n OSM-File of Steglitz   Creating a complete Eclipse MOSAIC-scenario from an OSM-file with one command This is the most straight forward way to create a scenario from your OSM-file. We will use the option --osm2mosaic, which is a combination of the options --osm2db and --db2mosaic.\nLet\u0026rsquo;s start off by showing you how a complete call could look like:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Change mosaic.version to the current version you are using.\nIn this section we use the scenario name steglitz. as synonym for path/to/steglitz..\n  This achieves a couple of things. First off the script is going to create a SQLite-database, which is used by Eclipse MOSAIC. Furthermore, a directory will be created, which should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm ├─ application | └─ steglitz.db ├─ cell | ├─ cell_config.json | ├─ network.json | └─ regions.json ├─ environment | └─ environment_config.json ├─ mapping | └─ mapping_config.json ├─ ns3 | ├─ ns3_config.json | └─ ns3_federate_config.xml ├─ omnetpp | ├─ omnetpp_config.json | └─ omnetpp.ini ├─ output | └─ output_config.xml ├─ sns | └─ sns_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let\u0026rsquo;s walk through all these files:\n First the steglitz.db will be created using the steglitz.osm-file. The steglitz.db will be used to create steglitz.con.xml, steglitz.edg.xml and steglitz.nod.xml, which are files used by SUMO.  SUMO Netconvert is used to create steglitz.net.xml, which is a network representation in SUMO. Now the SUMO-configuration steglitz.sumo.cfg is written. Afterwards the mapping_config.json and scenario_config.json are created and all files are moved to the right place. In the scenario_config.json values like the center coordinate will automatically be set using data from the SUMO related files.  While this is technically sufficient to start working on your scenario there are a couple of other things you can do to achieve better results.\nClean the OSM-file using Osmosis\nOsmosis will automatically be used to create a new OSM-file with the suffix _cleaned. The created file will contain much less clutter and usually is better suited for simulation purposes. Check the images below to see the difference the clean-up process can make.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Uncleaned OSM-file    Cleaned OSM-file     Uncleaned Net-file    Cleaned Net-file        To avoid \u0026ldquo;cleaning\u0026rdquo; the OSM-file, please use the option \u0026ldquo;skip-osm-filter\u0026rdquo;.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter   Generating Routes\nThe scenario-convert also offers the option --generate-routes, which will generate a route-file, given some additional information. For example purposes we will run the following command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  This will calculate three routes between the two given coordinates.\nAlternatively you can use the following command in order to generate routes with node-id\u0026rsquo;s as start and end point, which can be found in the steglitz.nod.xml file.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-node-id 267350668 --route-end-node-id 313139970 --number-of-routes 3  see below for all command line options.\nExporting Traffic Lights\nAnother feature of the scenario-convert script is the ability to export traffic lights from the osm-file to be used by SUMOs netconvert. The extended call would look like this:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3 --export-traffic-lights  Conlusion\nThis wraps up one of the main workflows with the scenario-convert-script. A quick reminder on what we achieved:\n Cleaned up an OSM-file to only contain relevant data. Converted that OSM-file to formats that Eclipse MOSAIC/SUMO can handle. Created the project structure for a scenario. Calculated routes between two coordinates.  With all of this you can now start further developing your scenario. For a more detailed description on the next steps please have a look here (Simulation Scenarios) and here (Application Development).\nWhile this is the \u0026lsquo;happy world\u0026rsquo; workflow it is often necessary to manually adapt routes and insert them into your scenario. The following workflow will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.\nImporting Routes to your scenario As mentioned above your routes won\u0026rsquo;t always be created by the scenario-convert script. We generated some routes for the steglitz-scenario using SUMO\u0026rsquo;s duarouter, which you can find here. We\u0026rsquo;ll start with only the steglitz.osm and steglitz.rou.xml files:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz.rou.xml  Creating the database\nWe\u0026rsquo;ll start off by solely creating the database and applying OSMOSIS with the following command:\njava -jar scenario-convert.jar --osm2db -i steglitz.osm  The directory should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.db ├─ steglitz.osm ├─ steglitz.rou.xml └─ steglitz_cleaned.osm  Importing the route-file\n This is the interesting part of this workflow. 👍\n Let\u0026rsquo;s import our routes into the database.\nWe achieve this by calling:\njava -jar scenario-convert.jar --sumo2db -i steglitz.rou.xml -d .\\steglitz.db  Now all new routes are imported into our database. The following image shows a visualization of one of the created routes.\n Visualization of one of the routes   Creating the scenario\nThe final step is to create the scenario from the files we created so far.\njava -jar scenario-convert.jar --db2mosaic -d .\\steglitz.db  Instead of copying our SUMO-files this will generate all necessary files and move them into a Eclipse MOSAIC-conform folder structure:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json  As you can see the resulting folder structure looks just like the final output from the first workflow described.\nConclusion\nYou should now know how you can manually add routes to your scenario and have a deeper understanding of the way that some of the script parameters work.\nAttached Files A list of all attached files in this chapter:\n Steglitz OSM-file Steglitz Route-file  Reference documentation for scenario-convert Usage of scenario-convert The following listing shows an overview for the usage of scenario-convert:\nscenarioConvertFunctions\nConfiguration-files for scenario-convert Scenario-convert offers a way to safe your conversion-parameters in a JSON configuration file using the option -c or --config-file.\nThe following listing shows how to save the options used in the example above:\nsteglitzConfigFile\nSpeed-files Below you can find a properties file which can be used during the import of OSM data in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the option --osm-speeds-file \u0026lt;FILE\u0026gt;. In the speed properties file, for each way type a speed value can be defined, according to the OSM highway key.\nspeed-properties\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"485ead0ca3596dfe810e10c66ea5a027","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_convert/","section":"docs","summary":"The tool scenario-convert is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.","tags":null,"title":"Scenario Convert","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;. For each simulation run a new folder is created.\n└─ log-\u0026lt;timestamp\u0026gt; ├─ apps | ├─ \u0026lt;unitType\u0026gt;_\u0026lt;unitId\u0026gt; ................. Detailed application specific logs for each unit | ├─ OperatingSystem.log ................. Detailed operating system logs for the unit | └─ ExampleApp.log ...................... Detailed application specific logs for each application. ├─ activities.csv ......................... Simulation details in comma separated value-format ├─ Application.log ....................... Information about the application ambassador ├─ Cell.log ............................... Cellular network log ├─ ChargingStation.log .................... ChargingStation ambassador log ├─ Communication.log ...................... (Ad hoc) network simulation ambassador log ├─ CommunicationDetails.log ............... Detailed output of network simulator (ns-3 or OMNeT++) ├─ Environment.log ........................ Logs of the environmental eventserver ├─ Mapping.log ............................ Mapping configuration logs ├─ MOSAIC.log ............................. General information, e.g. startup sequence information ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador ├─ Traffic.log ............................ Traffic simulation log (SUMO or others) └─ visualizer.csv ......................... Recorded data of the integrated File Output Generator  In addition to standard logging output for each federate there is a activities.csv file which contains detailed information about sent and received interactions. This file can be used to trace a simulation run for deep debugging. To enable this feature, the log level of the logger activities has to be set to INFO in the logback.xml (see section below).\nLogging The main configuration file for logging is \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. In this file, the log output can be configured in great detail. This file can be adjusted to your needs, e.g. you can set up a more detailed logging for communication components but set a less verbose output for Eclipse MOSAIC\u0026rsquo;s internal interactions or traffic simulation depending on your simulation focus.\nEclipse MOSAIC uses LOGback as logging framework. LOGback offers a lot of parameters to adapt the output to your needs. Please refer to this site for a detailed overview of all parameters you can use in the logback.xml file.\nPlease note that you can adjust the output to your needs by setting different log levels (ERROR, INFO, DEBUG etc.) for each component in the file at \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. This might also influence the simulation performance because of a possibly high amount of data to be logged.\nFederate specific logging Depending on the simulation purpose, further configuration possibilities for federate specific logging may be of interest.\nFor instance, OMNeT++ exhibits an elaborated logging concept. The omnetpp.ini in the scenario folder includes options to adjust the logging levels. The outputs of this federate are written to CommunicationDetails.log.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"2607b5551624e7e4887eac7256574426","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/results/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/results/","section":"docs","summary":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;.","tags":null,"title":"Simulation Results","type":"docs"},{"authors":null,"categories":null,"content":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator. It implements predefined interfaces of the Eclipse MOSAIC core library and is directly coupled with Eclipse MOSAIC. Second, your simulator needs to communicate with the Federate Ambassador. For this purpose, you either need to implement your own protocol to control the simulator, or use existing ones of your respective simulator (e.g. SUMO provides the TraCI byte buffer protocol).\n Implementing a Federate Ambassador In order to simplify federate development and to make the usage of the mechanisms provided by the RTI safer, an abstract class called AbstractFederateAmbassador is provided by the Eclipse MOSAIC core package. It implements the FederateAmbassador interface and handles incoming interactions as well as time advance grants according to the specified federate behaviour. When a federate implementation is making use of the AbstractFederateAmbassador as a super class, it has to provide two information to the superclass while constructing an instance of the class. These are:\n  isTimeConstrained: The general way this parameter can be understood, is that if it is set to true the federate is sensitive towards the time stamp order of interactions. The AbstractFederateAmbassador will then queue incoming interactions and request a time advance from the RTI in order to ensure that processing the received interaction is safe. At the time the requested time advance is granted, every queued interaction with a time stamp smaller or equal to the granted time will be delivered to the federate for processing. If set to false, incoming interactions will be forwarded immediately to the federate, thus resulting in a receive-order of interactions at the federate.\n  isTimeRegulating: Specifies whether the federate will publish time stamped interactions and thus can influence the time advances of other federates in the federation. If set to true, the AbstractFederateAmbassador will request time advances with respect to the specified lookahead value of the federate in order to avoid that time management schedules the execution of other federates while queued interactions are processed. If set to false, time advance requests that are issued due to incoming interactions will be flagged with an unlimited lookahead, allowing the RTI to schedule other federates while incoming interactions are processed.\n   Flowchart of Interaction handling   Further notes Coupling a multitude of different simulators and properly syncing them is a non-trivial task and requires a lot of effort in order to function correctly. If you have read up on High Level Architecture before (have a look here and at the linked references) you might notice, that the previous flowchart does not completely reflect the proposed mechanisms. For instance, the isTimeRegulating flag has no effect, when the isTimeConstrained flag is not set.\nSo at some points you might stumble upon federates, which have their isTimeConstrained and isTimeRegulating flags set to different values as you would expect. An example of this is the ApplicationAmbassador. One would expect it to be time-constrained as well as time-regulating. This isn\u0026rsquo;t the case though, because the ApplicationAmbassador implements its own time- and event-management, which would interfere with the internal mechanisms.\nWhen implementing your own federate, you can use the existing ones as reference.\nExample A federate that is timeConstrained and timeRegulated can handle a time stamped interaction only after receiving a corresponding time advance grant. For that reason, the AbstractFederateAmbassador caches the incoming interactions in a local queue and requests a time advance with the interactions time stamp. After getting a grant for that time stamp, it forwards the interaction via the processInteraction method call and afterwards invokes processTimeAdvanceGrant to allow the federate to proceed in its local simulation time. In the activity diagram in the following figure, the process of handling of incoming interactions with respect to the federate configuration is illustrated.\n Sequence diagram illustrating the flow of information.   Integration into Eclipse MOSAIC The first step to integrate a new component is the extension of the configuration file etc/defaults.xml. An example for a federate configuration can be found in following listing.\n\u0026lt;federates\u0026gt; [...] \u0026lt;federate class=\u0026quot;com.dcaiti.vsimrti.fed.omnetpp.ambassador.OmnetppAmbassador\u0026quot;\u0026gt; \u0026lt;id\u0026gt;omnetpp\u0026lt;/id\u0026gt; \u0026lt;deploy\u0026gt;true\u0026lt;/deploy\u0026gt; \u0026lt;start\u0026gt;true\u0026lt;/start\u0026gt; \u0026lt;host\u0026gt;local\u0026lt;/host\u0026gt; \u0026lt;port\u0026gt;4998\u0026lt;/port\u0026gt; \u0026lt;config\u0026gt;omnetpp.ini\u0026lt;/config\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription\u0026gt;VehicleRegistration\u0026lt;/subscription\u0026gt; \u0026lt;subscription\u0026gt;RsuRegistration\u0026lt;/subscription\u0026gt; \u0026lt;subscription\u0026gt;TrafficLightRegistration\u0026lt;/subscription\u0026gt; [...] \u0026lt;/subscriptions\u0026gt;\u0026gt; \u0026lt;/federate\u0026gt; [...] \u0026lt;/federates\u0026gt;  The following parameters are available:\n  class - Attribute giving the full qualified name of the Java class which implements the Feder- ateAmbassador interface.\n  id - The id of the federate. This value should be as short as possible and will be also used for identifying the configuration folder within scenarios.\n  deploy - If set to true, the federate placed under bin/fed/ will be copied to the execution host (according to the host configuration file).\n  start - If set to true, the federate will be started by the federation management using the start command specified in the configuration file or this implementation.\n  subscriptions - A list of interaction names which the Federate Ambassador subscribes for. If any other ambassador sends out one of those interactions, this ambassador will receive them.\n   Interaction extension Another possibility to extend Eclipse MOSAIC is to add a new interaction to the set of predefined interactions. In the following figure, the abstract class Interaction, implemented interaction extensions, and a place holder for further extensions (rectangles with grey fonts and a dotted border) are illustrated. When the InteractionManagement forwards interactions among federates, it chooses the destination based on a interaction id and an optional condition. Furthermore, it synchronizes the interaction delivery based on their times. The abstract class Interaction offers these attributes but no further content. The exchanged content has to be implemented by extending the class Interaction. The already implemented extensions cover the content necessary to simulate common scenarios. However, for further scenarios further interactions might be required.\n Interaction classes and their relationships..   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"029b4f7b54e0aba61d23421e910663b7","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/simulator_coupling/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/simulator_coupling/","section":"docs","summary":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator.","tags":null,"title":"Simulator Coupling","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.0   Website  https://www.eclipse.org/sumo/   Supported version(s) 1.0.1, 1.1.0 (limited support), 1.2.0 - 1.7.0 (full support)        Installation Download Eclipse SUMO Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.\n In order to run SUMO with Eclipse MOSAIC you need to make the SUMO binaries available system wide by adding the SUMO binary folder to your PATH environment variable. Alternatively, the environment variable SUMO_HOME can be used to define the installation directory of SUMO.\n   We recommend to use the 64 bit version of SUMO if you want to simulate scenarios with a big traffic network.\n  Configuration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/sumo/sumo_config.json. If no such file exists, the following default configuration options are used:\n{ \u0026quot;updateInterval\u0026quot;: 1000, \u0026quot;sumoConfigurationFile\u0026quot;: \u0026quot;\u0026lt;scenarioName\u0026gt;.sumo.cfg\u0026quot;, \u0026quot;exitOnInsertionError\u0026quot;: true, \u0026quot;additionalSumoParameters\u0026quot;: \u0026quot;--time-to-teleport 0 --seed 100000\u0026quot;, \u0026quot;subscriptions\u0026quot;: [\u0026quot;roadposition\u0026quot;, \u0026quot;signals\u0026quot;, \u0026quot;emissions\u0026quot;] }  Next to sumo_config.json, the following configuration files are required for every SUMO simulation scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ sumo ├─ \u0026lt;scenarioName\u0026gt;.net.xml .............. SUMO Network file ├─ \u0026lt;scenarioName\u0026gt;.rou.xml .............. SUMO Route file ├─ \u0026lt;scenarioName\u0026gt;.sumocfg .............. SUMO configuration file └─ sumo_config.json .................... Ambassador configuraition file]  The SUMO configuration consists of sumo specific config files and the sumo-ambassador configuration file. The main configuration file name must end with the suffix *.cfg, which needs to refer to the network and route files. The network file is mandatory and should be generated with the scenario-convert tool provided with Eclipse MOSAIC.\nThe \u0026lt;scenarioName\u0026gt;.rou.xml is optional and is generated automatically for each simulation run. The routes for each vehicle are then usualy taken from the scenario database. However, those routes can be overriden by defining them manually in the route file.\n With Eclipse MOSAIC, the traffic definition (definition of vehicles, flows, vehicle types) is part of the Mapping configuration file. Any vehicles or flows defined within the \u0026lt;scenarioName\u0026gt;.rou.xml are ignored and won’t be simulated by SUMO.\n  Vehicle related parameters, such as acceleration, maximum speed, and the like, are configured via the Mapping configuration file. However, some SUMO specific parameters, like the car following model, needs to be configured separately in the route file. For example, if you have configured a vehicle type called MyVehicle in the Mapping configuration, you can set specific parameters for this type in the \u0026lt;scenarioName\u0026gt;.rou.xml as following:\n\u0026lt;routes\u0026gt; \u0026lt;vType id=\u0026quot;MyVehicle\u0026quot; carFollowModel=\u0026quot;IDM\u0026quot; lcKeepRight=\u0026quot;10\u0026quot;\u0026gt; \u0026lt;/routes\u0026gt;  Further information about SUMO and its configuration can be found in the official SUMO wiki.\nUsing the SUMO GUI with Eclipse MOSAIC It is also possible to use the graphical interface of SUMO in order to visualize and interact with the simulation. To achieve this, Eclipse MOSAIC can be configured to start the GUI process of SUMO as the federate rather than the command line interface. In order to use the SUMO GUI the file \u0026lt;mosaic\u0026gt;/etc/mosaic.xml needs to be edited. Here, the entry org.eclipse.mosaic.fed.sumo.ambassador.SumoAmbassador must be replaced with org.eclipse.mosaic.fed.sumo.ambassador.SumoGuiAmbassador.\n Keep in mind to launch Eclipse MOSAIC with the argument -w 0 in order to disable the watchdog timer. Otherwise it would shutdown Eclipse MOSAIC if the simulation is paused in the SUMO GUI.\n  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"86514c669b0224d14af4801daf24dc4c","permalink":"https://www.eclipse.org/mosaic/docs/simulators/traffic_simulator_sumo/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/traffic_simulator_sumo/","section":"docs","summary":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.","tags":null,"title":"Eclipse SUMO - Simulation of Urban MObility","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"5a65785fcf26ff856f02501a2dff644b","permalink":"https://www.eclipse.org/mosaic/group/dcaiti/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/dcaiti/","section":"group","summary":"The **Daimler Center for Automotive IT Innovations (DCAITI)** was founded in 2006 as a joint initiative of Daimler AG and the Technical University of Berlin. The DCAITI uses Eclipse MOSAIC since many years for various research projects in the field of automated and connected driving. Together with the TU Berlin students gain practical experience in software development by using and extending this simulation framework and models.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates. Note that we use the word \u0026ldquo;interaction\u0026rdquo; whenever we describe communication between federates, whereas we talk about a \u0026ldquo;message\u0026rdquo; primarily when concerned with V2X-communication.\nAll interactions are categorized by the package they are contained in, which corresponds to their main context/purpose. The \u0026ldquo;Sent by\u0026rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.\nmapping All interactions in this package are concerned with adding/registering simulation-units to the simulation. While most of the introductions are handled by the Mapping3- or Application-ambassador, some of them are handled by the ambassadors for the traffic simulators (see LuST-scenario). In this case the interactions are used to initialize the scenario.\n   Interaction name Description Sent by     VehicleRegistration This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator. Mapping3\nApplication   ChargingStationRegistration This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s. Mapping3   RsuRegistration This interaction indicates the introduction of a roadside unit to the simulation. Mapping3   TmcRegistration This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for. Mapping3   TrafficLightRegistration This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system. Mapping3   TrafficSignRegistration This interaction indicates the introduction of a traffic sign. Mapping3    mapping.advanced Interactions in this package are still concerned with the mapping of vehicles but differ from simple simulation unit registration.\n   Interaction name Description Sent by     ScenarioTrafficLightRegistration This interaction contains the phases and their duration of each traffic light in the simulation. This interaction shall be generated by the traffic simulators at start up (e.g. SUMO) Sumo\nPhabmacs   ScenarioVehicleRegistration This interaction is used to add vehicles to a simulation using a preconfigured scenario, which could be defined by using Sumo. Sumo(Scenario)   RoutelessVehicleRegistration This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the Application-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards. Mapping3    communication This package contains interactions regarding the setup of communication-components in simulation units and interactions concerned with the transfer of V2X-messages.\n   Interaction name Description Sent by     AdHocCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s ad-hoc communication facilities. Application   CellularCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s cellular communication facilities. Application    Interactions related to V2X-message transfer.\n   Interaction name Description Sent by     V2xMessageAcknowledgement This interaction is used by a communication simulator to inform about success or failure of a packet transmission. Typically, the application simulator should subscribe to this interaction. Cell   V2xMessageReception This interaction is intended to be used to exchange information about a received V2X message. Omnet++\nns-3\nSimpleNetworkSimulator\ncell   V2xFullMessageReception This interaction carries the payload that represents an arbitrary V2XMessage that is supposed to be received by the receiver of this Eclipse MOSAIC Interaction. Omnet++\nns-3\nSimpleNetworkSimulator\nCell   V2xMessageRemoval This interaction is intended to be used to exchange information about V2X messages, that are to be deleted. Application   V2xMessageTransmission This interaction is sent in order to trigger the transportation of a V2XMessage over a wireless network to a given geographical destination area. Application    vehicle The interactions contained in this package are usually used to enable applications to forward vehicle-control to the used traffic simulators.\n   Interaction name Description Sent by     VehicleActuatorsChange This interaction is used to directly control the throttle/brake of an vehicle. At the moment this is only supported by Phabmacs. Application   VehicleDistanceSensorActivation This interaction is used to enable the distance sensors of a vehicle. A multitude of sensors can be enabled with one interaction given they use the same maximum lookahead distance. Application   VehicleFederateAssignment This interaction is intended to be used, when more than one traffic simulator is used in a simulation. It enables the passing of information on which vehicle are passed externally. At the moment this is used by the PhSCA-ambassador. PhaSCA   VehicleLaneChange This interaction initiates a lane change for the given vehicle, which should be consumed by the traffic simulators. Application   VehicleParametersChange This interaction requests to update various parameters of the vehicle or its driver. Application   VehicleResume This interaction requests the given vehicle to continue its journey after being stopped beforehand. The interaction should be handled by traffic simulators Application   VehicleRouteChange This interaction is used to change a route for vehicle by its id. It can be assumed that the given route id has been propagated by either a VehicleRoutesInitialization- or VehicleRouteRegistration-interaction. Application   VehicleRouteRegistration This interaction is used to propagate a newly generated route which is not yet known. It consists of the id of the route and a list of all its edges. Application   VehicleSightDistanceConfiguration This interaction is used to configure the sight distance for a vehicle (driver), this information can for example be used to implement applications regarding traffic sign recognition. Application   VehicleSlowDown This interaction initiates the vehicle to slow down in a given interval. The request should be handled by traffic simulators. The name \u0026lsquo;SlowDown\u0026rsquo; is inherited by Sumo and a little bit misleading, the speed can also be increased. Application   VehicleSpeedChange This interaction sets the current speed of the given vehicle. This should be handled by traffic simulators Application   VehicleStop This interaction requests the given vehicle to stop at the given road position, it should be handled by traffic simulators. Application    traffic Interactions in this package are focused around traffic management and communication with traffic simulators.\n   Interaction name Description Sent by     CellularHandoverUpdates This interaction is used by the cell ambassador to communicate handovers. cell   InductionLoopDetectorSubscription This interaction subscribes a unit to the data of an induction loop detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LaneAreaDetectorSubscription This interaction subscribes a unit to the data of a lane area detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LanePropertyChange This interaction contains lane properties to be changed. Concretely, it sets a list of allowed and disallowed vehicle classes per lane and a new maximum speed limit that shall be changed. The changed lane properties have to be omitted to the traffic simulator to be handled. Application   TrafficDetectorUpdates This extension of {@link Interaction} combines updates of lane area and induction loop detectors. Usually the updates are supplied by the traffic simulator and will be filtered by applications subscribed to them. Sumo   TrafficLightStateChange This interaction is intended to be used to forward a request to change the state of a simulated traffic light. This interaction can be used to implement different controlling strategies for traffic lights. Application   TrafficLightUpdate This interaction is a container for traffic light update. It is sent by the SumoAmbassador to inform simulation units about an updated traffic light state. Sumo   VehicleUpdates This interaction is used to update the position of some or all vehicles of the simulation. It consists of three lists, containing newly added vehicles, vehicles which were updated since the last simulation step, and vehicles which have been removed from the traffic simulation. Sumo\nPhabmacs   VehicleTypesInitialization This interaction is required for each simulation. It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier. Mapping3   VehicleRoutesInitialization This interaction is required for each simulation. It contains all routes vehicles will take during the simulation. Other ambassadors may cache this interaction in order to have access on the routes, which are later identified by their identifier. Application    electricity All interactions contained in this package are related to electric vehicles and the surrounding infrastructure.\n   Interaction name Description Sent by     ChargingDenialResponse This interaction is sent out by the charging station ambassador to inform the application simulator (the vehicles) when a charging station is already in use. e.g. a vehicle wants to start charging on an engaged charging station -\u0026gt; ChargingStartDenial. ChargingStation   ChargingStartResponse This interaction is intended to be used to forward a started charging process at a ChargingSpot to the RTI. ChargingStation   ChargingStationUpdates This extension interaction is intended to be used to forward the updated state of a ChargingStation to the RTI. ChargingStation   ChargingStopResponse This interaction is intended to be used to forward a stopped charging process at a charging station to the RTI. ChargingStation   VehicleChargingStartRequest This interaction is intended to be used to forward a request from a vehicle to start charging its battery at a charging station to the RTI. Application   VehicleChargingStopRequest This interaction is intended to be used to forward a request from a vehicle to stop charging its battery at a charging station to the RTI. Application   VehicleElectricityUpdates This interaction is used to inform the applications of simulation units about changed electric information, send out by the battery ambassador. Battery    environment The interactions in this package are used for handling the communication about environment sensors.\n   Interaction name Description Sent by     EnvironmentSensorActivation This interaction is intended to be used to signal interest in sensor information for a specific simulation unit. Application   EnvironmentSensorUpdates This interaction is intended to be used to exchange sensor data. EventServer   GlobalEnvironmentUpdates This extension of interaction contains a list of current environment events and their locations. Those events can than be used to react upon a changing environment. EventServer    trafficsigns Interactions in this package are used to communicate changes in variable traffic signs, e.g. changing the speed limit.\n   Interaction name Description Sent by     AbstractTrafficSignChange This interaction can be sent to traffic sign ambassador in order to change a variable traffic sign. All interaction-classes, that are concerned with changing traffic signs extend this class. Application   TrafficSignLaneAssignmentChange This interaction can be sent to traffic sign ambassador in order to change a variable lane assignment sign. Application   TrafficSignSpeedLimitChange This interaction can be sent to traffic sign ambassador in order to change a variable speed sign. Application   VehicleSeenTrafficSingsUpdate This interaction stores a map of all traffic signs which are in sight distance of a specific vehicle and a map of all traffic signs which became invalid for that vehicle. TrafficSign    application Interactions in this package are used for applications. They are used to communicate custom information/data via the RTI.\n   Interaction name Description Sent by     ApplicationInteraction This interaction is intended to be used in custom applications, it can be extended for simulation units to react upon different influences and can be used for intercommunication between applications. Application   ItefLogging This interaction is used to exchange log-tuples for the ITEF (Integrated Testing and Evaluation Framework). Application   SumoTraciRequest This interaction is used to send a byte array message to SUMO TraCI. The request will be handled by TraCI and trigger a SumoTraciResponse. Application   SumoTraciResponse This interaction holds the TraCI response for a SumoTraciRequest. It is sent by the SumoAmbassador and will usually be handled by the Application that sent the request. Sumo    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"7f431be72ccf4101c02872c325977e3f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/interactions/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/interactions/","section":"docs","summary":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates.","tags":null,"title":"Interactions in Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter. For more detailed explanations of the configurations have a look at this chapter.\nIf you already played with the Barnim-tutorial you probably noticed, that it contains far more folders in the scenario structure compared to the Steglitz example. Those additional directories contain configurations for various simulators.\n└─ Barnim ├─ application ├─ cell ├─ environment ├─ mapping ├─ ns3 ├─ output ├─ sns ├─ sumo └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let the cars loose As a starting point we\u0026rsquo;ll look at the scenario that we created using this command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  We\u0026rsquo;ll end up with a folder looking like this:\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  If you have a look in the mapping_config.json, you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this file as a blueprint for your own scenario, have a look here to get more details on possible adaptions.\nBelow is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars follow.\n Watch scenario\nCommunication Simulators (cell, ns3, omnetpp, sns) We won\u0026rsquo;t implement any functionality for the steglitz example here but rather have a look at the Barnim-tutorial. In the \u0026lt;a href=\u0026quot;/docs/building_scenarios/files/barnim_mosaic_config.xml\u0026quot; download\n scenario_config.json .xml` of the Barnim scenario you can see where the communication simulators are activated.\n \u0026quot;federates\u0026quot;: { \u0026quot;cell\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;sns\u0026quot;: true }  Our tutorials and additional examples demonstrate use cases for communication usages and you should have a look at them if you are uncertain where to start. Furthermore we recommend copying the configuration-files for the simulator you are going to use from the Barnim scenario. It contains the most complete configurations and is well maintained.\nIf you are an expert with one of the external network simulators ( ns3, OMNeT++) the Barnim scenario will also give you an overview on how to configure those.\nOther Simulators Here we\u0026rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the Event Server and the Battery Simulator.\nEvent server The event server can be used to emit events to vehicles inside it\u0026rsquo;s predefined borders. In the Barnim scenario an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.\nEvery defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look at the eventserver_config.json to see how this can be configured. If you want to use the event server make sure to have it enabled in the scenario_config.json.\nBattery The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can dynamically load your own battery, vehicle and environment models. Have a look a the battery_config.json, taken from the Barnim scenario. The three models used are included with Eclipse MOSAIC and you can freely use them.\nOutput There are various options to generate output results of your simulations (see the visualization chapter). Visualizing doesn\u0026rsquo;t necessarily mean you will end up with moving pictures of cars driving along your predefined routes.\nLet\u0026rsquo;s get back to the steglitz-scenario and try to calculate the average travel time of our vehicles. The first step is to create a file called visualizer_config.xml in a new directory called visualizer. If you used the scenario-convert tool the file should be generated automatically.\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ output | └─ output_config.xml ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Next make sure the visualization federate is activated in the scenario_config.json.\n\u0026lt;!-- Visualization --\u0026gt; \u0026lt;federate id=\u0026quot;visualizer\u0026quot; active=\u0026quot;true\u0026quot;/\u0026gt;  Now we have to configure the statistics visualizer itself. This visualizer_config.xml contains the basic configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please refer to statistics visualizer.\nGo ahead and run the simulation one more time. Afterwards the log-directory should contain a file called AverageVehicleTravelTime.csv in a directory called StatisticsVisualizer:\ngroup;group-value;total; Car;186.369;336;  This tells us that there was a total amount of 336 vehicles of the type car in the simulation, which traveled for 186.369 seconds on average.\nConclusion\nAfter this small, hands-on introduction to visualizers you should know where to configure them and after some additional reading, you should be able to configure different types of visualizers for your use-cases.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"a4ca6c187ad91d08aae3125ab16bd8e7","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_configuration/","section":"docs","summary":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter.","tags":null,"title":"Additional Scenario Configuration","type":"docs"},{"authors":null,"categories":null,"content":"  This feature is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation. To this end, the is a tool to apply different configurations to a scenario, after which a series of simulations is executed via CLI by calling the start script.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e8beb745ee20688b28a1a708883ced00","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/simulation_set/","section":"docs","summary":"This feature is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation.","tags":null,"title":"Run a Simulation Set","type":"docs"},{"authors":null,"categories":null,"content":"  The Statistics Visualizer is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes. With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.\nConfiguration  The main configuration file for all visualizers is located at scenarios/\u0026lt;scenarioName\u0026gt;/visualizer/visualizer_config.xml  In order to use the Statistics Visualizer, the attribute enabled of the root element visualizer must be set to \u0026ldquo;true\u0026rdquo;, as shown in the following listing.\n\u0026lt;visualizer id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; [..] \u0026lt;/visualizer \u0026gt;  Configuration header for Statistics Visualizer\nSpecification In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For each type of retrieving data we create a \u0026lt;statistic\u0026gt;\u0026lt;/statistic\u0026gt; block. Inside the block we define one certain data type we want to retrieve in a  element. If you want to retrieve different data types, just create another \u0026lt;statistic\u0026gt; block for each of them.\nYou can also set the wanted file name in the attribute filename of the statistic element. If the attribute has not been given, each \u0026lt;statistic\u0026gt; block will get the name accordingly to the order number, for example 1. StatisticsVisualizer-Block.csv.\nIn the output attribute two options (short|verbose) can be selected. The short option provides us a compact log file with information about only the highest level of the retrieved data (e.g. aggregate values of grouped vehicles) in contrast to verbose option which also provides informations about every individual vehicle in each group.\nFor a successful start, the element source must be placed in the first position in the statistic children element list. Different options of possible data types, one of which must be specified in the source element can be seen below.\n\u0026lt;statistic filename=\u0026quot;ChooseItYourself\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;NameOfSource\u0026lt;/source\u0026gt; \u0026lt;/statistic\u0026gt;  Source options of Statistics Visualizer\nApplication This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for processing of the obtained data.\n source: Data to obtain, choose between:  VehicleSpeeds - Obtain the speeds of the vehicles of each simulation step. VehicleStops - The total number of stops during the journey of each vehicle. VehicleTravelTimes - The total travel time in s of the vehicles. VehicleDelayTimes - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s). VehicleTravelledDistances - The travelled distance inmof the vehicles. VehicleFuelConsumptions - The fuel consumptions of the vehicles in l per km. VehicleHeadways - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor. DetectorFlow - The flows of each subscripted induction loop.     For using the detector flow type, inductions loops need to be configured in the SUMO and mapping configuration files (e.g. Highway tutorial).\n   group-by: The vehicles will be grouped by its vehicle type name (VehicleType), group they belong to (VehicleGroup), or obtained data value (e.g. Interval:200 categorizes values into groups of size 200).\n  aggregation: Average | Harmonic aggregation of the obtained values. An attribute deviation can be set to true or false (it’s false if the attribute is not given). This attribute can be used for grouped values to get the deviation of each value from the aggregated group value or to get a standard deviation based on biased sample variance for groups (in the short output version).\n  filter: Filtering with the attribute filterType (possible values are keep and remove).\n Filtering by required value slots with two options to specify them: MoreThan:Value or LessThan:Value (e.g. MoreThan:5 to collect values which are bigger than 5 only) Filtering by vehicle type. VehicleType:Type (e.g. VehicleType:Car to collect values only of vehicles of type \u0026ldquo;Car\u0026rdquo;) Filtering by time. Time:From-To (e.g. Time:0-100 to collect values only of the first 100s of simulation time)    The following example will show an example of how you can specify the Statictics Visualizer according to your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim scenario) and then calculate the average vehicle travel time value for each of these groups.\n\u0026lt;visualizer id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; \u0026lt;statistic filename=\u0026quot;AverageVehicleTravelTimes\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;VehicleTravelTimes\u0026lt;/source\u0026gt; \u0026lt;group-by\u0026gt;VehicleGroup\u0026lt;/group-by\u0026gt; \u0026lt;aggregation\u0026gt;Average\u0026lt;/aggregation\u0026gt; \u0026lt;/statistic\u0026gt; \u0026lt;/visualizer\u0026gt;  Getting the Average time by vehicle class\nYou can also combine filters if you want to get a certain interval with upper and lower boundaries. With the following input instruction, only vehicles with the obtained data values between 250 and 500 will be left after filtering.\n\u0026lt;filter filterType=\u0026quot;keep\u0026quot;\u0026gt;LessThan:500\u0026lt;/filter\u0026gt; \u0026lt;filter filterType=\u0026quot;remove\u0026quot;\u0026gt;LessThan:250\u0026lt;/filter\u0026gt;  An example for filtering\nPlease notice that some sources are being not only obtained in each simulation step but also collected for further processing as separate values for each of these steps (like VehicleSpeeds, VehicleHeadways). These data types need to be aggregated to one value per vehicle if you want to group them by value or filter them.\nFor demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the average travel times of the vehicles and additionally groups them. As a result, the simulation produces the following CSV file in the log directory:\nGroup;Value;Total; AdHoc;399.14;24; Cellular;463.87;12; Unequipped;459.18;84;  The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"f3aea6e70248def0891ed9bd89706cbb","permalink":"https://www.eclipse.org/mosaic/docs/visualization/statistics/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/statistics/","section":"docs","summary":"The Statistics Visualizer is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.","tags":null,"title":"Statistics Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"00c72d014237189758fbbed269e91b7d","permalink":"https://www.eclipse.org/mosaic/group/openmobility/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/openmobility/","section":"group","summary":"The **openMobility Working Group** was founded to support the development and broad introduction of open source mobility modeling and simulation technologies. The aim of the Working Group is to deliver a openMobility framework of tools based on validated models, which are accepted as standard tools in industry applications and academia. Eclipse MOSAIC is one part of the broad range of tools developed in this group.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent. Subsequently, it will find all the Java Archive (JAR) files in the application configuration directory, belonging to the currently started scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is registered as a handle for different Eclipse MOSAIC messages in the configuration file etc/mosaic.xml in the Eclipse MOSAIC folder. After initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.\nNode Creation  Application Simulator basic flow / node creation classes   Application classes are only instantiated when a node, carrying that application, is created. This is signaled by messages for node creation like (AddedVehicle,AddedRsu,AddedTrafficLight, \u0026hellip;). When the Mapping ambassador spawns a new node, it will send those messages to the RTI. The message then contains the fully qualified names of all applications associated with the spawned node, as well as the vehicle type itself. Depending on this type, the Application Simulator creates a new SimulationUnit object (i.e. a subclass of SimulationUnit like Vehicle, RoadSideUnit or TrafficLight), representing the new node. This task is served by the UnitSimulatorclass, which performs book keeping of all SimulationUnits. Upon Creation of a node, the UnitSimulator will schedule an event to start all applications, belonging to the new node. The required information is saved in a StartApplications object, which also includes a ApplicationUnit object, an abstract representation of a node (a.k.a. unit) having at least one application.\nHowever, as, for example, SUMO does not simulate vehicles strictly from their creation on, but only since their first movement, Applications for vehicles cannot be started directly upon an AddedVehicle message. Instead, every added vehicle will be kept in the addedVehicles Map, until a VehicleMovements message, belonging to that vehicle is processed. The vehicle will then be added by the UnitSimulator like any other node.\nOther Messages and Time Advance Apart from the ones for node creation, there are many other messages (see Interactions), signaling events to the Application Simulator. For most of them, an event in the future will be programmed, such that the implied action is carried out at that simulation time. The processing of the events happens when the RTI calls the advanceTime() method on the ambassador. Upon this, Application Simulator will obtain a list of all events up to the new time and let the processor of the event process them. Every potential event processor implements the EventProcessor interface. The corresponding method is the advanceTime() method of ApplicationAmbassador, which calls scheduleEvents() on the event scheduler. Subsequently, some interesting messages and their handling process is sketched shortly:\n   Message Description     VehicleUpdates Signals that a vehicle has moved. The Vehicle object, which is a subclass of SimulationUnit, that corresponds to the moved vehicle will be updated to contain the new position. The new information is encapsulated in a VehicleInfo object, containing different vehicle data. To update the data, an event is scheduled at the given time and processed upon time advance. Vehicles not yet added to the simulation (see Node Creation), are added by calling addVehicleIfNotYetAdded().   MessageReceiption This message represents the reception of a V2X-message by a simulated node. The SimulationUnit with the id saved in the ReceivedV2XMessage object is scheduled for the processing of the message at the given simulation time. When simulation time reaches the reception time, the SimulationUnit will obtain the message from the message cache and hand it to all applications that implement the CommunicationApplication interface in the method SimulationUnit.processReceiveV2XMessage().   ApplicationInteraction While most other messages are specific to the a SimulationUnit, that then forwards the event to its applications, the ApplicationSpecificMessage is directly handed to all applications. Thereby, the SimulationUnit, whose applications shall receive the message can be specified. If this is not done, all applications of all units will get the message and have the opportunity to handle it.    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"ba98bef533abd0bfde76ff58f6af3458","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/application_ambassador_details/","section":"docs","summary":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent.","tags":null,"title":"Application Ambassador - Implementation Details","type":"docs"},{"authors":null,"categories":null,"content":"  The ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios. It is suited for field operational tests as well as simulations.\nITEF also offers a variety of visualization features, making a comparison of different vehicles or between equipped and unequipped vehicles easy. It is structured into 4 screens, whereas the following 3 screens are intended for the visualization.\nThe Replay screen (see Figure 1) is intended to be used for an initial overview of the test run. The main feature is the display of the vehicle movements on a map, while the player can be used to playback the movement situation. In this manner, the ITEF allows a location and time dependent evaluation of simulation test runs.\n ITEF Replay Screen   The Evaluate screen (see Figure 2) allows the detailed investigation of the correlations in a test run. The main feature of this screen is to display the behavior summarized over the whole run. The structure of this screen with is similar to the Replay screen. However, the focus here is on the detailed (statistical) summary of evaluated metrics.\n ITEF Evaluate Screen   Finally, the Statistics screen (see Figure 3) provides statistical evaluations of the test and simulation run. Currently, statistics on Vehicle Speed, Travel Time, Travel Distance and severalmore are supported.\n ITEF Statistics Screen   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"90c70d06303c99232632c33c319ffb8b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/itef/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/itef/","section":"docs","summary":"The ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios.","tags":null,"title":"Integrated Test and Evaluation Framework (ITEF)","type":"docs"},{"authors":null,"categories":null,"content":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication. For this kind of simulations, external model frameworks have to be included. Currently, there are two prominent model frameworks which cover whole model suites for according focus of wireless research. These are the Mobility Framework and the INET Framework. As INET provides all models necessary for simulating Vehicle-2-X communication, it is selected for the integration to Eclipse MOSAIC.\nFor more information on the INET extension you should look closer on the website.\n          Operating System GNU/Linux\n(Windows with mingw)    License GPL, free to use for academic use    Supported version(s) OMNeT++ 5.5 INET 4.1 http://www.omnetpp.org https://inet.omnetpp.org    Installation There are two installation types of the Eclipse MOSAIC OMNeT++ Federate:    Type Description     USER This installation type addresses those who only want to use the OMNeT++ network simulator for simulations.\nNetwork configurations can also be adjusted.\nIf you install the federate with this installation type, OMNeT++ 5.5 and INET 4.1 will automatically be installed inside \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp during the installation.   DEVELOPER The installation for developers addresses those who want to make changes or extend the Eclipse MOSAIC OMNeT++ Federate.\nThis installation type awaits that OMNeT++ 5.5 and INET 4.1 are already installed on your system and\n- PATH contains /path/to/omnetpp/bin\n- LD_LIBRARY_PATH contains /path/to/omnetpp/lib and /path/to/inet/src\n- C_INCLUDE_PATH contains /path/to/omnetpp/include and /path/to/inet/src     If you already have OMNeT++ 5.5 and INET 4.1 installed on your system, but you simply want to use OMNeT++ for simulations with Eclipse MOSAIC without developing further the Eclipse MOSAIC OMNeT++ Federate, you may also choose the installation for developers to avoid multiple installations of OMNeT++ and INET on your system.\n  First of all, please make sure that you have the following libraries installed: unzip, tar, bison, flex, gcc, python, protoc\n The installation of the current version of the OMNeT++ Federate was tested with protobuf version 3.7.0.\nIt is recommended to install this version. Here you receive more information about how to install protobuf.\n  Follow the links and download the source code of OMNeT++, INET and the Eclipse MOSAIC OMNeT++ Federate:    Software Version Link     OMNeT++ 5.5 https://omnetpp.org/download/   INET 4.1 https://github.com/inet-framework/inet/releases   Eclipse MOSAIC OMNeT++ Federate 20.0 Download    Available parameters of omnet_installer.sh:     Parameter Value Description     -t --installation-type \u0026lt;INSTALLATION_TYPE\u0026gt; Either USER or DEVELOPER.   -o --omnetpp \u0026lt;PATH_TO_OMNET_TGZ\u0026gt; Provide the archive containing the OMNeT++ source. You can obtain it from https://omnetpp.org/download/   -i --inet \u0026lt;PATH_TO_INET_TGZ\u0026gt; Provide the archive containing the inet source code. You can obtain it from https://inet.omnetpp.org/Download.html. If not given, the inet-source files are downloaded by this installation script.   -f --federate \u0026lt;PATH_TO_FEDERATE_ZIP\u0026gt; Provide the archive containing the OMNeT++-federate and patches for coupling OMNeT++ to Eclipse MOSAIC. If not given, the omnetpp-federate is downloaded by this installation script.   -so --skip-omnetpp - Skip the installation of OMNeT++   -si --skip-inet - Skip the installation of INET   -q --quiet - Less output and no interaction required   -j --parallel \u0026lt;NUMBER_OF_THREADS\u0026gt; Enables make to use the given number of compilation threads.\nPer default your systems maximum is selected automatically.   -u --uninstall - Uninstalls the OMNeT++ federate   -h --help - Shows this usage screen    Installation for Users Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type USER \\ --omnetpp /path/to/omnetpp-OMNETPP_VERSION-src.tgz \\ --inet /path/to/inet-INET_VERSION-src.tgz \\ --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip  For the installation type USER the parameters -o, -i and -f are required.\nThe installation script should terminate with SUCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\nInstallation for Developers Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type DEVELOPER \\ --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip  For the installation type DEVELOPER the parameter -f is required.\nThe installation script should terminate with SUCCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\n How to develop Eclipse MOSAIC OMNeT++ Federate\nOMNeT++ Federate Configuration To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open \u0026lt;scenarioName\u0026gt;/mosaic/mosaic_config.xml and enable OMNeT++:\n\u0026lt;federate id=\u0026quot;omnetpp\u0026quot; active=\u0026quot;true\u0026quot; /\u0026gt;  Now, when you run this scenario, Eclipse MOSAIC will automatically start the Eclipse MOSAIC OMNeT++ Federate.\nThe main configuration of the Eclipse MOSAIC OMNeT++ Federate is done within the configuration files omnetpp.ini and omnetpp_config.json in the scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ omnetpp ├─ omnetpp.ini ...................... OMNeT++ federate configuration file └─ omnetpp_config.json .............. Ambassador configuration file  The whole OMNeT++ specific configuration is done via the omnetpp.ini file. It covers static parts for the simulator coupling such as the specific Eclipse MOSAIC Event Scheduler and the ScenarioManager. Furthermore, logging configurations and the typical parameters for the communication layers (MAC, PHY and Radio Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure of the omnetpp.ini file.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"208d551c9e8045f1304b3efe6800d7dd","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_omnetpp/","section":"docs","summary":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication.","tags":null,"title":"Network Simulator OMNeT++","type":"docs"},{"authors":null,"categories":null,"content":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols. It simulates both unicast and multicast protocols and is used extensively in research on mobile ad-hoc networks.\nRegardless, ns-2 still remains in active use and will continue to be maintained in the near future. For Eclipse MOSAIC coupling, only ns-3 will be available.\nLike other network simulators, ns-3 has a relatively steep learning curve, especially compared to GUI- based simulators. If you have no prior experience with ns-3, we recommend to familiarize yourself with the ns-3 simulation environment and the ns-3 simulation basics first. The ns-3 documentation can be found under: https://www.nsnam.org/documentation\nTo take your first steps with ns-3, you might want to download 2 the latest version, build a copy of ns-3 (it uses the Python-based build-system waf) and take a look at the examples, that are shipped within most of the ns-3 source code repositories and packages. You might also examine the simulation output and try to adjust it.\nTypically, a ns-3 user will work under a Linux environment. For those running under Windows, there do exist environments which simulate the Linux environment to various degrees. The ns-3 project has in the past (but not presently) supported the Cygwin environment for these users (see http://www.cygwin.com for details on downloading). MiniGW is presently not officially supported, however there are also some people who managed to use it with ns-3. For detailed information of how to setup ns-3, please refer to their Wiki: https://www.nsnam.org/wiki/Installation\nFor more information on how to setup ns-3 with Eclipse MOSAIC, please just refer to the following section. We prepared an installation script, which manages most of the required work.\n As stated above, ns-3 is primarily developed on and for GNU/Linux platforms. Since Windows is such a widely used platform and Cygwin is not a perfect emulation of any Linux, we highly recommended for non-Linux users to consider the installation of a Linux virtual machine with a virtual machine environment, such as VMware or VirtualBox.\n      Software information     Developer(s) Tom Henderson, Mathieu Lacage, George Riley, Mitch Watrous, Gustavo Carneiro, Tommaso Pecorella and others   Written in C++ (core) and Python (bindings)   Operating system GNU/Linux FreeBSD Mac OS X   License Free software: GNU GPLv2   Website http://www.nsnam.org/   Supported version(s) 3.28   Dependencies libprotobuf 3.3.0    libxml2    libsqlite3   Deployed in MOSAIC all-in-one no (and need a patch to link)    ns3-ambassador folder structure └─ \u0026lt;scenario_name\u0026gt; └─ ns3 ├─ ns3_config.json ................. Ambassador configuration file ├─ configTechnologies.xml ...........ns-3 federate configuration file └─ confWifi.xml .....................ns-3 federate configuration file  Installation Eclipse MOSAIC offers support for the current stable release of ns-3 (3.28), that was released in March 2018. Older versions of ns-3 (prior to 3.28) are not supported. However, also for newer versions we cannot guarantee the correct operation. The coupling to Eclipse MOSAIC is designed in a manner of minimal code changes on the ns-3 simulator itself to keep the update capabilities for future versions.\nPrerequisites For GNU/Linux platforms, the minimal requirements to run basic simulations are a gcc or clang compiler and a Python interpreter. At least you need the following packages to be installed:\nMinimum requirement:\ngcc g++ python python-dev  For a complete list of required packages for different distributions, please refer to the ns-3 installation guide: https://www.nsnam.org/wiki/Installation\nPlease make sure the following libraries are installed before running the installation script:\n libxml2 libsqlite3 libprotobuf 3.3.0  Run the installation script  ns-3 requires several packages to be installed on your computer. You will need to ensure, that all required libraries are present on your system before proceeding. You may need superuser permissions to install packages.\n   If your local protobuf version does not fit the required one, the installation may fail with an error. In that case, you can run the install script with the -p flag. This will rebuild the protobuf files during installation and allow it to proceed correctly.\n  To ease the installation of ns-3 for Eclipse MOSAIC, the installation process has been delegated to an installation script, that can be found in the associated ns-3 federate folder.\nns3-ambassador federate folder structure:\n└─ mosaic/bin/fed/ns3 └─ ns3 ├─ Dockerfile.sh ....................Dockerfile for ns-3 federate └─ ns3_installer.sh ................ Installation script for ns-3  The ns-3 installation script accomplishes the following tasks:\n Download ns-3 tarball from the offical sources Download the ns-3 federate for Eclipse MOSAIC. Apply a patch to ns-3 in order to make it work with Eclipse MOSAIC. Add the ns-3 federate to the waf build system. Configure and build the patched ns-3 with the ns-3 federate.  In order to start the simulation, the following steps need to be performed:\n Set up the confWifi.xml-file in the scenario folder (see section Configuration). An example confWifi.xml - file is shipped with the Tiergarten scenario. For reasonable result logging, the logger-configuration in mosaic/etc/logback.xml has to be adapted to support the ns-3 ambassador and federate. At last ns-3 has to be activated in the mosaic_config.xml and the simulation can be started.  Installation in Docker environment  This is an experimental feature. Please refer to our mailing list if you experience any problems.\n  This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed ns-3 on your machine following the steps before, you can skip this section.\nDocker 5 is a new approach to execute software. More precisely, it \u0026ldquo;wraps software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, and system libraries\u0026rdquo;. As a result, the software is executed within a container and its execution does not rely on the environment the container is running in.\nIn context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not need to manually install ns-3 and can even run ns-3 on Windows hosts.\n Install Docker ≥ 1.13 on your machine. To get everything to work, please make sure to execute the following steps depending on your operating system:  Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab. Linux - Make sure your user account belongs to the unix-group docker. You may need to restart your machine.   Switch to the location of the Dockerfile in mosaic/bin/fed/ns3 Execute the following command on command line:\ndocker build -t ns3-federate:mosaic.\nThis could take a while to finish. Enter the name of the docker image etc/defaults.xml in the ns3-section into the tag dockerImage:  \u0026lt;federate class=\u0026quot;...\u0026quot;\u0026gt; \u0026lt;id\u0026gt;ns3\u0026lt;/id\u0026gt; ... \u0026lt;dockerImage\u0026gt;ns3-federate:mosaic\u0026lt;/dockerImage\u0026gt; ... \u0026lt;/federate \u0026gt;  You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the mosaic_config.xml.\nConfiguration The whole ns-3 specific configuration is done via the confWifi.xml and configTechnologies.xml files.\nconfWifi.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;wifi\u0026gt; \u0026lt;!-- IPv4 address generator --\u0026gt; \u0026lt;ipConfiguration\u0026gt; \u0026lt;ip address=\u0026quot;192.168.0.0\u0026quot; mask=\u0026quot;255.255.0.0\u0026quot;/\u0026gt; \u0026lt;/ipConfiguration\u0026gt; \u0026lt;!-- Calculate a propagation delay --\u0026gt; \u0026lt;propagationDelayModel\u0026gt; \u0026lt;delay model= \u0026quot;ns3::NonePropagationDelayModel\u0026quot;/\u0026gt; \u0026lt;/propagationDelayModel\u0026gt; \u0026lt;!-- Modelize the propagation loss through a transmission medium --\u0026gt; \u0026lt;propagationLossModel\u0026gt; \u0026lt;loss model= \u0026quot;ns3::FriisPropagationLossModel\u0026quot;/\u0026gt; \u0026lt;/propagationLossModel\u0026gt; \u0026lt;wifiConfiguration\u0026gt; \u0026lt;!-- Create non QoS-enabled MAC layers --\u0026gt; \u0026lt;wifiMac property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::AdhocWifiMac\u0026quot;/\u0026gt; \u0026lt;!-- Wifi PHY mode --\u0026gt; \u0026lt;wifiManager property=\u0026quot;phyMode\u0026quot; value=\u0026quot;OfdmRate54Mbps\u0026quot;/\u0026gt; \u0026lt;!-- Wifi manager --\u0026gt; \u0026lt;wifiManager property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::ConstantRateWifiManager\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;EnergyDetectionThreshold\u0026quot; value=\u0026quot;-81.0\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;CcaMode1Threshold\u0026quot; value=\u0026quot;-99.0\u0026quot;/\u0026gt; \u0026lt;!-- Transmission gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Reception gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Number of transmission power levels available between TxPowerStart and TxPowerEnd included --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerLevels\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;!-- Maximum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerEnd\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Minimum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerStart\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxNoiseFigure\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;ChannelNumber\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;/wifiConfiguration\u0026gt; \u0026lt;/wifi\u0026gt;  The IP configuration information includes the network address and network mask. The ns-3 propagation module defines two generic interfaces, namely PropagationLossModel and PropagationDelayModel, for the modelling of propagation loss respectively propagation delay.\nIn the default confWifi.xml, the Wi-Fi device uses the ns-3 standard propagation delay model ns3::ConstantSpeedPropagationDelayModel and the ns-3 standard propagation loss model ns3::FriisPropagationLossModel. Radio propagation models in ns-3 can easily be exchanged with the ns-3 class registration system (see the ns-3 documentation for details). The Wi-Fi configuration includes additional parameters, like sending power and antenna gain.\nconfigTechnologies.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;ns3Configuration\u0026gt; \u0026lt;installers\u0026gt; \u0026lt;installer type=\u0026quot;ns3::WifiVehicleInstaller\u0026quot; name=\u0026quot;WifiVehicle\u0026quot; file=\u0026quot;confWifi.xml\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;installer type=\u0026quot;ns3::MobilityModelInstaller\u0026quot; name=\u0026quot;Mobility\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;/installers\u0026gt; \u0026lt;/ns3Configuration\u0026gt;  The configuration manager of the ns-3 federate defines, which installer should be loaded for the Wi-Fi device (refering to the confWifi.xml) and the mobility model. Usually, you don’t need to take any changes and simply use the default configuration file, that ships with the ns-3 federate.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"10a4ba934e0981b530dd053b83c60773","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_ns3/","section":"docs","summary":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols.","tags":null,"title":"Network Simulator ns-3","type":"docs"},{"authors":null,"categories":null,"content":"  The 3D visualization RHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation. Next to the road network, which can be optionally rendered by the visualizer, the following units and events are visualized:\n Vehicle movements coming from the traffic simulation Road Side Units at their defined location V2X-messages sent via cellular communication (indicated as green circles) V2X-messages sent via ITS-G5 communication (indicated as blue circles) V2X-messages received by vehicles (indicated as red circles)   The 3D visualization tool PHABMap displaying events from the simulation   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"262992c33ea9dc690e168169b920406b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/phabmap/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/phabmap/","section":"docs","summary":"The 3D visualization RHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation.","tags":null,"title":"3D Visualization (PHABMap)","type":"docs"},{"authors":null,"categories":null,"content":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre. It is designed to handle large road networks faster than real-time. Each vehicle has an own route and is simulated individually. To simulate the movements of the vehicles on the network, a model is used that uses discrete time steps of e.g. 1 s. Thousands of vehicles can be simulated in real time on a desktop PC, including simulation of traffic lights, right-of-way rules, and lane changing models. Simulations can either run via the command line or are visualized using the openGL-API (SUMO-GUI). SUMO networks are created by importing other formats, such as OpenStreetMap data, Shapefiles or TIGE-maps; or by generating artificial networks. Furthermore, vehicle routes, based on different routing paradigms, can be computed.\nSUMO and Eclipse MOSAIC We have integrated the traffic simulator SUMO to be able to simulate heterogeneous driving vehicles and a set of vehicles that have a predefined routes based on an imported roadmap. Additionally, during the runtime of a simulation, it is possible that routes of simulated vehicles are changed and that vehicle positions are extracted at arbitrary points in time. The integration of SUMO into a Eclipse MOSAIC based simulation is illustrated in the following figure. The integrated Traffic Control Interface (TraCI) Server offers an interface to exchange commands and positions using a socket interface with a proprietary byte protocol. Analogous to the TraCI Server, a TraCI Client is implemented that is integrated in an ambassador implementing the TraCI protocol. Therefore, SUMO can be integrated without modifications.\n SUMO connected to Eclipse MOSAIC   During a simulation run, per default SUMO is paused and TraCI is listening for commands. After each advanced time grant, SUMO offers the new vehicle positions which are broadcast by its ambassador to other federates. Furthermore, if the ambassador receives a request to change the route of a specific vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.\nSimulation of Vehicles For each vehicle which has been defined in the mapping3 configuration, a VehicleRegistration interaction is sent to the SumoAmbassador which adds those vehicles to the simulation via TraCI. Furthermore, vehicle data is subscribed which is updated with every simulation step. After each step of the simulation this data is bundled into a VehicleInfo object which is distributed among other ambassadors within the VehicleUpdates interaction. The following data is available for each vehicle:\n Position Speed, Acceleration, Heading, Slope State of vehicle signals (e.g. turn indicators) Emission dispersion (CO2, NOX, etc.) Fuel consumption Information about the road the vehicle is driving on (road position) Id of the route  Traffic lights in SUMO Depending on which light is active (red, yellow or green), every traffic light got different phases. In theory, any combination of dis- or enabled lights is possible, but SUMO only handles combinations which make sense. In SUMOs traffic light concept every traffic light got a bitset of the status of each phase. Every bitset is a combination as mentioned above. When a car approaches a junction, it gets the actual bitset (combination) of the traffic light. To explain the code, an example is given:\n\u0026lt;tl-logic type=\u0026quot;static\u0026quot;\u0026gt; \u0026lt;key\u0026gt;0\u0026lt;/key\u0026gt; \u0026lt;subkey\u0026gt;my program\u0026lt;/subkey\u0026gt; \u0026lt;phaseno\u0026gt;8\u0026lt;/phaseno\u0026gt; \u0026lt;offset\u0026gt;0\u0026lt;/offset\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;GGggrrrrGGggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;yyggrrrryyggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrGGrrrrrrGGrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rryyrrrrrryyrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;rrrrGGggrrrrGGgg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrryyggrrrryygg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrrrrrGGrrrrrrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrrrryyrrrrrryy\u0026quot;/\u0026gt; \u0026lt;/tl-logic\u0026gt;  This example shows the traffic light program of one junction. It shows the different status’ of each light of each traffic signal, which are positioned on the junction. In this example every string of a phase e.g. \u0026ldquo;GGggrrrrGGggrrrr\u0026rdquo; (first phase) got 16 characters. Every char stands for one light on the junction. On this junction are four traffic lights with four signals each. To understand the different status of each light in one period (8 phases) the program should be read from top to the bottom. It is possible to change or create your own program by editing the .net file with the tool Netedit.\nHandling of traffic lights in Eclipse MOSAIC After the TraCI connection has been established, all available traffic light groups are read out of SUMO via TraCI. This information is packed into the three classes TrafficLightGroup, TrafficLightSignal, and TrafficLightPhase. While a traffic light group contains a list of signals which control one intersec- tion (which can consist of several nodes), a list of all existing traffic light groups is sent to the RTI via a ScenarioTrafficLightRegistration interaction.\nTraCI Client Implementation The SumoAmbassador communicates with the federate (SUMO process) via TraCI. In this socket based communication protocol, the server (SUMO) listens to commands and responds accordingly.\nEach message send to SUMO consist of a header and the command or result message, according to the following scheme:\n 0 7 8 15 +--------------------------------------+ | Message Length including this header | +--------------------------------------+ | (Message Length, continued) | +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_0 | Command / Result_0 content | | +--------------------------------------+ / ... +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_n -1 | Command / Result_n-1 content | | +--------------------------------------+ /  A more detailed description can be found here: http://sumo.dlr.de/wiki/TraCI/Protocol\nCommands Each TraCI command is identified by an command identifier. For example, the command 0xC4 is used to change the state of a vehicle. Most of the commands need further specification, such as the parameter of the vehicle which is required to be changed. Those parameters are usually accessed by variable identifiers (e.g. 0x40 addresses the speed of an entity). A full list of commands and variables supported by TraCI can be found here: http://sumo.dlr.de/wiki/TraCI\nHere is an example of a command message to change the speed of the vehicle \u0026ldquo;veh_0\u0026rdquo; to 14m/s:\n 0 7 8 15 23 24 31 +-----------------------------------------------------------------------------+ | 25 (Message length) | +-----------------------------------------------------------------------------+ | 21 (Length) | 0xC4 (Command) | 0x40 (Variable) | +-----------------------------------------------------------------------------+ 5 (String length as 4 Byte Integer) | \u0026quot;v\u0026quot; | +-----------------------------------------------------------------------------+ | \u0026quot;e\u0026quot; | \u0026quot;h\u0026quot; | \u0026quot;_\u0026quot; | \u0026quot;0\u0026quot; | +-----------------------------------------------------------------------------+ | 0x0B (Double type)| 40.0 (8 Byte Double) +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ | +-------------------+  AbstractTraciCommand In the TraCI client implementation of the SumoAmbassador the whole construction of messages is done in the class AbstractTraciCommand. The message header containing the message and command lengths is constructed automatically as well as all parameters defined by the specific command. To achieve this, each class which extends the AbstractTraciCommand needs to define the command, the variable and all parameters which are required for the specific command:\nprotected VehicleSetSpeed() { super(TraciVersion.LOWEST); write() .command(0xC4) // = change vehicle state .variable(0x04) // = set speed of entity .writeStringParam() // = vehicle id .writeDoubleParamWithType(); // = speed value }  This example shows the command implementation for setting the speed for a vehicle. In the constructor, the write methods provides a builder-like construct allowing to define the command, the variable, and all parameters which are later passed dynamically to the command. Here, the command is specified as 0xC4 (= change vehicle state) and the variable as 0x04 (= speed of the entity). Furthermore, two parameters are defined: The first string parameter represents the ID of the vehicle, the second double parameter defines the speed value to be set (according to http://sumo.dlr.de/wiki/TraCI/Change_Vehicle_State). Note, the order of the specified command contents is from crucial importance. E.g. the command must always be specified before the variable, and the variable before all parameters.\nAll parameters defined in the constructor (here: [String, Double] ), need to be assigned with values as soon as the command is executed. For this purpose, the command implementation needs to call the method execute of the super class with the parameter values in the specified order:\npublic void setSpeed(TraciConnection traciCon, String vehicleId, double speedValue) { super.execute(traciCon, vehicleId, value); }  Within the execute method, the AbstractTraciCommand constructs the whole message and sends it to the TraCI server (SUMO). Furthermore, the AbstractTraciCommand also reads the response, extracts the status of the response (successful or error) and reads all values returned by the server. Usually, commands which changes the state of an entity only (like VehicleSetSpeed) do not respond with complex results. However, a command which wants to retrieve a value of an entity needs to read out the result from the response (e.g. VehicleGetRouteId which returns the current route identifier of the vehicle). For this purpose, each command needs to specify how the response should be handled:\nprotected VehicleGetRouteId() { super(TraciVersion.LOWEST); write() .command(0xA4) // = retrieve vehicle state .variable(0x53) // = route id of entity .writeStringParam(); // = write vehicle id read() .skipBytes(2) // = skip command and variable in response .skipString() // = skip vehicle id, not relevant .readStringWithType(); // = read route id  This example shows the command implementation for getting the route id of a vehicle. As well as write, the method read returns a builder-like construct which provides methods to define how the response is handled. Here, the first two bytes of the response should be skipped, as well as the string which follows afterwards. The value the command is interested in is the following string value which holds the id of the route. By using the method readStringWithType the string is read out and is passed to the method constructResult which needs to be implemented by the command as well:\npublic String getRouteId(TraciConnection con, String vehicle) { return super.executeAndReturn(con, vehicle); } @Override protected String constructResult(Status status, Object... objects) { return (String) objects[0]; }  In this simple case the result of the command consists of one result object only (the route id). Therefore, it is just extracted from the array of result objects and directly returned.\nWriting parameters In order to write parameters and read results according to the specification of the protocol, several reader and writer implementations exist. For parameters to be written in the command various writers exists to write single bytes, strings, integers, and doubles, or special writers for writing lists. The same is for readers.\nIn the following example, the IntegerTraciWriter is shown:\npublic class IntegerTraciWriter extends AbstractTraciParameterWriter\u0026lt;Integer\u0026gt; { public IntegerTraciWriter() { super(4); } public IntegerTraciWriter(int value) { super(4, value); } @Override public int getVariableLength(Integer argument) { return getLength(); } @Override public void write(DataOutputStream out) throws IOException { out.writeInt(value); } @Override public void writeVariableArgument(DataOutputStream out, Integer argument) { out.writeInt(argument); } }  Each writer has two tasks. Firstly, it needs to determine the length of the parameter value. For example, an integer parameter is always 4 bytes long, whereas the length of a string parameter depends on the size of the argument. Therefore, each writer needs to be able to determine the variable length according to a given value. Secondly, it needs to write out the actual value into the DataOutputStream (which represents the channel to the TraCI server). Furthermore is each writer able to write fixed values, such as the command identifier which does not change, or variable arguments, such as the vehicle id.\nReading results In the following example, the IntegerTraciReader is shown:\npublic class IntegerTraciReader extends AbstractTraciResultReader\u0026lt;Integer\u0026gt; { public IntegerTraciReader() { super(null); } public IntegerTraciReader(Matcher\u0026lt;Integer\u0026gt; matcher) { super(matcher); } @Override protected Integer readFromStream(DataInputStream in) throws IOException { return readInt(in); } }  A reader has three tasks. Firstly, it reads out a value from the DataInputStream (which represents the response channel to the TraCI client) according to the protocol specification. For example, an integer can be read out directly, while a string requires several single reading operations. Secondly, the reader needs to take track of the number of bytes it has read in total. To achieve this it is recommended to use the provided methods of the super class, such as readInt, readString, or readByte .However, if values need to be read directly from the DataInputStream, the protected field numBytesRead must always be increased accordingly. Thirdly, the reader needs to define if the read out value fulfils certain requirements. Such requirement can be, that a certain value is expected. In this case, a matcher might be passed to the super constructor.\nAccessing the commands For each command, only one object should be instantiated during runtime. To achieve this, the CommandRegister is used. This class stores a command once it is created returns only one instance per command class:\nfinal RouteAdd routeAddCommand = commandRegister.getOrCreate(RouteAdd.class); //... do something  However, commands should not be accessed directly in the code, but rather using the various facades available:\n TraciRouteFacade - Route specific command calls, such as addRoute and getRouteEdges . TraciSimulationFacade - Provides methods to control the simulation, such as simulateStep . TraciTrafficLightFacade - Provides methods to get or set values for traffic lights. TraciVehicleFacade - Provides methods to get or set values for vehicles. All those facades can be accessed via the TraciClient.  Exception handling Exceptions are thrown and handled as following:\n  If a command results in a status response with the status code Error, a TraciCommandException is thrown. If this exception is thrown, the TraCI connection is still alive and can be used for further commands. The facades decide how to handle this exception then and may throw an InternalFederateException or log a warning message.\n  If a command could not be written properly, or the result could not be read out as wished, an InternalFederateException is thrown and an Emergency Exit is initiated, which eventually shuts down the TraCI connection. This also happens if a reader or writer throws any kind of Exception.\n  Version handling With future releases of SUMO new TraCI commands will emerge. To achieve downward compatibility each command can define the lowest TraCI Version it supports. For example, a command which was introduced with SUMO 0.30.0 and is annotated accordingly, would be skipped automatically if the version of the TraCI server is lower. However, this concept has not been tested yet properly.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"619eca86fee9768692c3090a256ba49b","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/sumo_ambassador_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/sumo_ambassador_details/","section":"docs","summary":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre.","tags":null,"title":"Sumo Ambassador Implementation","type":"docs"},{"authors":null,"categories":null,"content":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places. Those abstractions will be discussed later on.\nConfiguration The SNS offers some configurability regarding the way transmissions are simulated.\nMain Configuration:\n   Parameter Description type Default Value     maximumTtl Defines the upper bound for the amount of hops a message can make. (Note: messages can have individual ttl\u0026rsquo;s) int 10   singlehopRadius Fallback radius to be used for transmission, if no radius is defined in the AdhocConfiguration double 509.4   singlehopDelay A delay configuration for the direct communication between two nodes. ( See here) Delay `ConstantDelay |   singlehopTransmission This contains the transmission configurations for lossProbability and maxRetries. CTransmission n/a   adhocTransmissionModel A class extending AdhocTransmissionModel, this will decide the logic for transmissions. AdhocTransmissionModel SimpleAdhoc TransmissionModel     On default the SNS will use the SimpleAdhocTransmissionModel with a ConstantDelay using 0 as delay. This means it usually makes sense to specify the AdhocTransmissionModel explicitly and use a more realistic Delay. Example Configuration:\n { \u0026quot;maximumTtl\u0026quot;: 20, \u0026quot;singlehopRadius\u0026quot;: 300.5, \u0026quot;singlehopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;1.5 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.5 ms\u0026quot; }, \u0026quot;singlehopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 0 }, \u0026quot;adhocTransmissionModel\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleAdhocTransmissionModel\u0026quot;, \u0026quot;simpleMultihopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }, \u0026quot;simpleMultihopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } }  Transmission Logic SNS differentiates between two types of Ad hoc transmissions, geographically- and topologically-scoped transmissions, which generally are abbreviated with GeoCast and TopoCast respectively.\nGeoCasts are limited to BroadCasts. Accordingly, there is no explicit addressing of receivers (other than 255.255.255.255), instead a destination area is specified. However, GeoCasts allow for multihop forwarding.\nTopoCasts on the other hand use means of IPv4 addressing to transmit messages. Since the SNS was not build to simulate transmissions using complex topology-constructs, TopoCasts are limited to transmissions with a single hop. However, TopoCasts support BroadCasts and UniCasts (we are omitting Anycasts). Most transmissions in the Ad hoc domain will be some form of Broadcast, meaning every reachable entity is eligible to receive a message.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TopoCastGeoCastYesYesYesNoYesNoV2X-TransmissionTransmission TypeBroadcast\nor Unicast?Broadcast?Simulate TopoCast using\nsinglehop configuration.Simple transmission\nmodel?Simulate transmission using\nsimpleMultihopDelay.Sender directly able to reach\ndestination area?Flooding in destination areaGreedy Forwarding to reach area,\nthen flooding in destination areay.  This flowchart tells how different types of messages are handled internally.   TopoCasts The only way of directly addressing entities is a SingleHopUniCast (see figure below), the sender will try to address an entity in its transmission range.   SingleHopUniCast: The RSU is directly addressing the green vehicle.   The counterpart to that is a SingleHopBroadCast (see figure below), this form of transmission is commonly used for CAMs (Cooperative Awareness Messages) and other types of intermediate warning messages to all entities in transmission range.\n  SingleHopBroadCast: The RSU is addressing all units in transmission range.   GeoCasts As already explained, GeoCasts do not support direct addressing, so there is no form of UniCast. Instead of addressing entities, GeoCasts specify a destination area in which a message should be distributed. The SNS supports two ways to simulate GeoCasts. A simple but performant model (SimpleAdhocTransmissionModel) \u0026amp; a fairly realistic model ( SophisticatedAdhocTransmissionModel).\nThe simple model assumes a transmission to all entities in the specified area, whereas the delay will be calculated using the configured delay-type and the successful reception will be determined by the uniformly distributed lossProbability. The figure below depicts this behaviour   Simple GeoBroadCast: The RSU is sending to all entities in the destination area. All arrows (transmissions) will have a uniquely calculated delay or possible loss.   The realistic model accounts for possible transmission failures more accurately. The easiest case is that the sender itself is inside of the destination area1 and will start a Flooding Transmission within this area (see figure below).   GeoBroadCast using Flooding Transmission. Note: the area is not limited to circles.   In case the sending entity is outside of the destination area, a Forwarding Transmission has to be executed first. This is can also be described as an AnyCast, since the goal of this transmission is to reach any entity inside the destination area. We try to achieve this by building a \u0026ldquo;chain\u0026rdquo; of entities, that will forward the message to the destination are (see figure below).   Forwarding Transmission, by building a \u0026ldquo;chain\u0026rdquo; of vehicles.   The SNS however never uses Forwarding Transmissions individually, rather they are combined with a Flooding Transmission, which will simulate a way, that GeaCasts can be implemented in reality. The figure below depicts this behaviour.   Forwarding Transmission followed by a Flooding Transmission to realistically simulate GeoCasts.   Transmission Models As already mentioned in the previous abstracts, the SNS supports different transmission models for different use cases. Depending on the configuration of the SNS and the type of message send, different models will be used. The models are located in the package org.eclipse.mosaic.fed.sns.ambassador.model. This chapter aims to give a detailed inside in the workings of the models.\nSimpleAdhocTransmissionModel This is the most basic of all transmission models and will be your model of choice if you are not interested in completely accurate transmission results but care for performance. This model will approximate GeoCasts using the defined simpleMultihopDelay and simpleMultihopTransmission parameters. For TopoCasts the usual singlehopDelay will be used. This model only checks, whether a potential receiver is inside the destination area and has enabled Adhoc capabilities. If those conditions are met it will simulate the transmission by calculating an actual delay value and saving it into a transmission-result. Such a result holds information of the success of the transmission, the delay-value, the amount of hops, and the number of attempts. Though the amount of hops will always be 1 for this model.\nSophisticatedAdhocTransmissionModel This model offers are more realistic simulation of adhoc transmissions, using an implementation of a greedy-forwarding and flooding algorithm (see here (greedy forwarding) \u0026amp; here (flooding)). For TopoCasts this model behaves very similarly to the SimpleAdhocTransmissionModel, since TopoCasts are always configured with only one hop. For GeoCasts however, this model follows the flowchart above, trying to \u0026ldquo;approach\u0026rdquo; a destination area if it can\u0026rsquo;t be reached directly.\nApproaching (Greedy forwarding) Approaching can be imagined as building a \u0026ldquo;chain\u0026rdquo; of entities to reach an area. However, there is no guarantee, that even if such a chain exists, it will be found. The way that this chain is build follows the subsequent steps:\n Start from the sender and collect all reachable entities. Choose out of all reachable entities the one, that is closest to any node in the destination area. Use the chosen node and repeat the first step. Repeat until either a node inside the destination area is reached, or the TTL (time to live) is exceeded.  By always choosing the node with the shortest distance to the destination area, we omit a lot of possible solutions. Greedy Forwarding isn\u0026rsquo;t optimal, but offers a performant approach for this problem. \u0026ldquo;Face Routing\u0026rdquo;-algorithms will always find a path if one exists, however this hasn\u0026rsquo;t been implemented yet (feel free to contribute :). The figure below shows an example of those shortcomings, the message will be send using the green nodes and won\u0026rsquo;t receive the destination area, even though there is a possible \u0026ldquo;chain\u0026rdquo; using the yellow nodes.\n image/svg+xml       Layer 1 Destination Area Destination Area Destination Area Sender Sender Sender    This figure depicts a case were the Approaching Transmission wouldn\u0026rsquo;t reach the destination area, even though there is a possible way. (The dashed lines represent the communication range)   Flooding The implementation of Flooding is fairly equivalent as described on wikipedia. Each entity forwards the message to all entities in its communication range. Entities, that already received the message won\u0026rsquo;t receive it again; this is different from many real-life implementations, where messages are send to all reachable entities except the sender. However, since the simulation has total knowledge of all simulated entities, it is easier to overcome a lot of the disadvantages, that flooding faces in real world implementations.\nImplementing your own AdhocTransmissionModel If the implemented models don\u0026rsquo;t suffice your needs you can easily implement your own. Create a class extending AdhocTransmissionModel and implement the abstract methods for sending TopoCasts/GeoCasts. A possible extension could be to allow for multihop TopoCasts, building an actual topology and transmit your messages using that topology. Also, the aforementioned \u0026ldquo;Face-Routing\u0026rdquo; could be of interest. Additionally, the calculation of delays could be made more realistic.\nAccessing SNS-functionality from your applications In order for your scenario to enable the SNS follow the steps here. An overview of how to configure AdHoc-modules and usage of the API for Routing and Message-Building functions, can be found here.\n  Or is able to communicate with an entity inside the destination area. \u0026#x21a9;\u0026#xfe0e;\n   ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"848a0c0a1afd14ed7264603bb2725ecf","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_sns/","section":"docs","summary":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places.","tags":null,"title":"Simple Network Simulator (SNS)","type":"docs"},{"authors":null,"categories":null,"content":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them. That means at first the internals of one node are introduced which incorporate mainly the communication stack and a mobilitymodel. Afterwards, especially the scenario management is presented which builds up on the individual nodes and controls themajor part of the simulation. These both aspects are in similar way needed formost mobile communication simulation with OMNeT++ even in an isolated setup. However, specifically for interaction and synchronization with the other simulators in the Eclipse MOSAIC environment, a third pillar is necessary. This scheduler module is very important for the system as it implements the time management and event scheduling according to Eclipse MOSAIC specific concepts.\nNode Internals The main part of the node model consists of the communication stack. The submodules for communication are adopted from the INETMANET framework. Hence, it is primarily important to define the connections between the individual modules. However, there are also modules which needed to be implemented for the dedicated purpose of the coupling within the Eclipse MOSAIC environment. Finally, all modules are linked together to a compound module using the NED language. The following figure depicts the node architecture. It needs to be said that the concept currently supports two different kinds of nodes for Vehicles and RSUs, while V2X-based traffic lights are treated as RSUs. For the first approach these two kinds of nodes have the equal construction in terms of modules. The difference at the moment is that they can be configured with different values for parameters e.g. that Vehicles and RSUs have a different antenna height which is important for Two Ray Ground ReflectionModel. Furthermore, this concept is capable for later extensions e.g. for simulations when RSUs should be equipped with an additional network interface to build the bridge fromAd hoc Domain to the Fixed Infrastructure Domain (i.e. Internet).\n Architecture of one Node   Communication Stack The right part of the block diagram in the figure above depicts the communication stack. It is based on the module Wlan which is a compound module itself and covers the complete IEEE 802.11 network interface card with the MAC and PHY Layer and the Radio Channel. The configuration of different values for standard parameters e.g. the PHY bit rate or size of the contention window of the MAC can be exchanged within the omnetpp.ini-file (which introduces the parameters of the according module ned-files). Please note that the configuration allows different values for each kind of nodes and hence it is possible to configure another propagation model or carrier frequency for Vehicles compared to RSUs. Even if the possibility for such a configuration exists, it should be avoided and common parameters should consistently be configured twice with the same value.\nThe next module in the communication stack is the NetworkLayer. Once again it is a compound module and already a collection of most important protocols. The following protocols from version IPv4 are supported in this layer.\n IP (Internet Protocol) of course as primary protocol of the Network Layer ICMP (Internet ControlMessage Protocol) for information and error messages IGMP (Internet GroupManagement Protocol) for management ofmulticast functionality ARP (Address Resolution Protocol) for mapping of IP Addresses toMAC Addresses  Furthermore, the standalone modules InterfaceTable and RoutingTable are related to the Network Layer. The first one is needed to support multiple Network Interface Cards e.g. for wireless and fixed LAN in one node. It is already included for possible further extensions as previously mentioned, but up to now it has only one entry which is the Network Interface Card for Wlan. The second one is a table for simple Routing. This module is needed for correct instantiation of a node via the FlatNetworkGenerator as explained later in this section.\nThe TransportLayer of the communication stack is made up of TCP for reliable connections and UDP.\nThe modules VSimRTIReliableApp and VSimRTIUnreliableApp of Application Layer are the entry points for application messages for the communication stack for the following reasons. The communication oriented models of INETMANET have their focus more on the framing for communication and less on the real content. That means that content is often modeled with dummy payloads where only the length is of interest. In contrast, V2X applications which are simulated in the Eclipse MOSAIC Application Simulator. Rely on the correct transmission of contents. Hence, the modules VSimRTIReliableApp and VSimRTIUnreliableApp are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager to send new messages to lower layers and forward messages themselves back to the ScenarioManager upon reception. The main tasks are generally acting as an application within the scope of OMNeT++ and encapsulating themessage contents to packets to prepare them for sending. While functionality of an UDP application is fully supported in VSimRTIUnreliableApp, the complete TCP application functionality is restricted in VSimRTIReliableApp. Note that up to now it is not entirely clarified if and how TCP should be supported in V2X use cases for safety and traffic efficiency with their broadcast characteristics, think of different roles of server and client in TCP. When the Eclipse MOSAIC ScenarioManager properties are detailed later in this section, it is also explained how the connection between the Eclipse MOSAIC ScenarioManager and the Eclipse MOSAIC Apps is realized. This connection needs to be established dynamically and is therefore not assigned with a connecting arrow like the fixed connections between the modules of communication stack.\nMobility Model The second important component of the node is the mobility module VSimRTIMobility, which extends the BasicMobility. Unlike other mobility models as RandomWaypoint it does not generate node movements itself and has a straight static character. Node position updates are always triggered by the Eclipse MOSAIC ScenarioManager. Hence,mobility is completely controlled by Eclipse MOSAIC and in turn by the coupled traffic simulator. After successful position update the VSimRTIMobility module informs other modules about this event via the NotificationBoard.\nAdditional Functionality At last, the module NotificationBoard is defined for each node. This module was already mentioned in the model overview of INETMANET. It enables a very efficient way for dynamic communication between the individual modules. There is no direct and static connection needed between the modules, because modules can subscribe dynamically for notification about dedicated events.\nSimulation Setup The setup of the complete simulation is illustrated in the following Figure 3 From the view of OMNeT++, the simulation is a network which has a dynamic topology and is referenced as the simulated network in the omnetpp.ini-file for configuration. The ini-file gives access to all parameters which are offered to be configured by the included simple modules. The parameters are referred to by their hierarchical names with the simulated network as root module. As it is possible to assign already default values for parameters in the modules NED file, not every parameter needs to be configured in the ini-file. The simulation consists of basically three parts.\n Architecture of the whole Simulation Scenario   Simulated Nodes Obviously the major part of the simulation is dedicated to the nodes. They are compound modules either from type Vehicle or RSU and have the properties as described in the previous section. The number of nodes in the simulation can vary over simulation time and is dynamically managed by the Eclipse MOSAIC ScenarioManager.\nCommon Communication Dependent Modules The second part covers the modules which actually count to the communication stack, but are common for all simulated nodes. These modules are the ChannelControl and the FlatNetworkGenerator. The ChannelControl keeps track of all nodes, their positions and Radio Channels. The main task is to determine which nodes are in communication range and which other nodes are within interference distance. The FlatNetworkGenerator is part of the Network Layer. It is used to instantiate a network with a flat topology and assigns the IP addresses to all nodes. Additionally it runs Dijstra’s shortest path algorithm to discover the routes and adds them into the routing tables. It is assumed that the routing tables are of kind of the RoutingTable from the specific NetworkLayer package. This is the reason why every node is equipped with the RoutingTable submodule. This approach works out for the current simulation purposes, but when any Ad hoc Routing protocols will be introduced to the simulation model the FlatNetworkGenerator and the RoutingTable modules are likely be obsolete and would have to be replaced.\nEclipse MOSAIC ScenarioManager The ScenarioManager is an experimental feature that implements a central control instance in simulations with INETMANET framework. It is loaded with a script in XML notation and is used to setup and control simulation experiments. Actually the original ScenarioManager and the new Eclipse MOSAIC ScenarioManager have nearly nothing in common but the fact that both are used as a central management instance to enhance simple configurations to simulate more sophisticated scenarios. The general tasks of the Eclipse MOSAIC ScenarioManager contain the simulation start up with instantiation of common modules as ChannelControl and initialization of the Eclipse MOSAIC EventScheduler (detailed later) and the controlled simulation shut down. But most important beside these are the management of node mobility and management of V2X communication which are triggered by Eclipse MOSAIC during simulation.\nThe Mobility Management is responsible for administration of simulated nodes and their mobility. This includes introducing nodes to simulation, updating node positions and removing nodes from simulation.\nThe node introduction method is triggered by Eclipse MOSAIC with the commands ADD_NODES or ADD_RSU_NODES respectively. It adds the node according to its node id to the managed modules and creates the complete compound module. Important for later message handling is the setup of connections to the dedicated Eclipse MOSAIC App, which is done via so called gates. At the moment, the Eclipse MOSAIC Apps are statically initialized, but the concept is suitable to be extended later when other transport protocols and in turn applications have to be simulated.\nUpon MOVE_NODE command, which contains the affected node id and new position to be updated, the node is moved via the VSimRTIMobility module.\nAt last the REMOVE_NODE command indicates that a node leaves the simulation. On this event, the according node is deleted and unregistered from managed modules.\nThe CommunicationManagement controls the sending and receiving of V2X messages.\nThe SEND_V2X_MESSAGE command initiates the sending process. It contains the sender node id and the transport protocol. Thus the Eclipse MOSAIC ScenarioManager can select the according Eclipse MOSAIC app at the according node.\nWhen a message from another node successfully arrives at the application layer the Eclipse MOSAIC ScenarioManager is notified by the according node. Then, it sets up a RECV_V2X_MESSAGE which is sent back to Eclipse MOSAIC via the Eclipse MOSAIC EventScheduler. This intermediate step is introduced, since the Eclipse MOSAIC EventScheduler is the only instance, which is connected to Eclipse MOSAIC and which knows when it is safe to receive and send interactions.\nSimulator Coupling OMNeT++ is connected to Eclipse MOSAIC according to the concept of high-level-architecture (HLA). That means that the OMNeT++ simulation program itself is encapsulated in the OMNeT++ federate. To enable the coupling according to Eclipse MOSAIC concept, two components needed to be developed. First, the OMNeT++ federate is extended with the customized Eclipse MOSAIC EventScheduler, which can receive and send interactions forMobility and CommunicationManagement. The second component is the OMNeT++ Ambassador that can handle on the one hand the OMNeT++ specific connection and on the other hand the well-defined interface to Eclipse MOSAIC. The emphasis of both components lies in the synchronized exchange of interactions i.e. a time management mechanism must be jointly realized by them. For this purpose the conservative synchronization mechanism is implemented. The following figure gives an overview of the included compenents.\n Overview of Simulator Coupling   Eclipse MOSAIC EventScheduler The Eclipse MOSAIC EventScheduler extends the simple standard scheduler of OMNeT++ to be able to implement the time management for the Conservative Synchronization with Eclipse MOSAIC. It is the only module in OMNeT++ which has access to the event queue or Future Event Set (FES). Since the OMNeT++ simulation is an event driven simulation the scheduler has to fulfill two tasks. The first task is the actual scheduling part which is always invoked by the simulation kernel to schedule the next event. It allows all events from the FES to be processed up to the granted logical time $T$. If there are only events with a later time $T'$ than $T$ left in the FES, it sends the Next Event Request (NER) to the OMNeT++ Ambassador at Eclipse MOSAIC side and blocks the OMNeT++ simulation. Then the second task comes into operation. If necessary, it coordinates the Receive Interaction procedure and merges the external events from Eclipse MOSAIC and hence from other federates to the internal FES. Events with the same time stamp are ordered to the FES according to first come first serve mechanism. Note that the handling of these simultaneous events is generally important to ensure repeatable execution of simulations. The decision about ordering is in control of the federate itself, since the RTI does not sufficiently have the information to do this. After the Receive Interaction step, the RTI completes the time management cycle with the Time Advance Grant for $T'$. At this point the scheduler can set its logical time to $T = T'$ and unblock the further processing.\nAdditionally the Eclipse MOSAIC EventScheduler provides the service for other modules to send interactions back to the OMNeT++ Ambassador, since it is also the one module which is connected to Eclipse MOSAIC. Currently, this is used by the Eclipse MOSAIC ScenarioManager to report the RECEIVE_V2X_MESSAGES.\nEclipse MOSAIC OMNeT++ Federate Development This section provides a description how to set up the OMNeT++ IDE for the Eclipse MOSAIC OMNeT++ Federate Development.\nAt this point it is awaited, that the Eclipse MOSAIC OMNeT++ Federate is successfully installed.\nPrepare OMNeT++ IDE   Create an empty directory somewhere inside your home directory. We will call it \u0026lt;omnetpp_workspace\u0026gt; from here on. This directory will be used as a workspace in your OMNeT++ IDE.\n  Open your OMNeT++ IDE by executing omnetpp in your terminal.\n  Select \u0026lt;omnetpp_workspace\u0026gt; as workspace and continue by clicking Launch.\n  Close the \u0026ldquo;Welcome\u0026rdquo; screen.\n  Since your workspace is empty, the OMNeT++ IDE will ask you if you want to install the INET framework and OMNeT++ programming examples.\n OMNeT++ IDE: Install INET   Decide by yourself if you want to do that:\n By clicking OK the INET framework is going to be installed into an inet folder in your \u0026lt;omnetpp_workspace\u0026gt; If you already have INET installed somewhere you can skip the installation and import your existing INET project:  Cancel the dialog. Choose File \u0026gt; Open Projects from File System... In the new window choose the directory of your existing INET installation as Import Source and click Finish      The project inet should now be visible in the Project Explorer of your OMNeT++ IDE.\n  Right-click on free space in the Project Explorer and choose New \u0026gt; OMNeT++ Project...\n OMNeT++ IDE: Create new OMNeT++ Project     In the new window:\n Name the new project federate Uncheck the box before Use default location, click Browse and select:\n\u0026lt;mosaic\u0026gt;/bin/fed/omnetpp/omnetpp_federate_src/src\n OMNeT++ IDE: Create new OMNeT++ Project    Click Next    On the following Initial Contents page select Empty Project and continue by clicking Finish\nYou should now find two projects in the Project Explorer of your OMNeT++ IDE: inet and federate\n  Right-click on the federate project and choose Properties\n Go to Project references and check the box before inet\n Choose project references       That\u0026rsquo;s it! None of the files should now be marked with an error symbol.\n Configure Rebuild Configuration Since the Eclipse MOSAIC OMNeT++ Federate is not a classic OMNeT++ project, it cannot be build regulary with the OMNeT++ IDE by just clicking on the Build button. However, to make the build process easy and intuitive we provide a simple build script and the following desciption how to configure the OMNeT++ IDE to enable building on a single click:\n In the OMNeT++ IDE select Run \u0026gt; External Tools \u0026gt; External Tools Configuration... Double-click in the left column on Program to create a new configuration. Call it rebuild federate In the Main tab:  Under Location choose Browse Workspace... and select federate/rebuild_federate.sh Still in the Main tab under Working Directory choose Browse Workspace... and select federate  OMNeT++ IDE Build Configuration      In the Build tab uncheck the box before Build before launch\n OMNeT++ IDE Build Configuration    Now you can Apply your changes and click on Run. Since you have built the project at least once, you can rebuild it again by clicking here:\n Run rebuild     The following video shows the above described steps:\n  Configure Debug Configuration To debug the Eclipse MOSAIC OMNeT++ Federate during simulation you need to create a Debug Configuration. The following instruction will tell you how to that:\n In your OMNeT++ IDE choose Run \u0026gt; Debug Configurations... In the new window double-click on OMNeT++ Simulation in the left column and name the new created debug configuration federate. In the Executable row check other and type /federate/federate In the Working dir row type /federate In the Ini file(s) row type debug.ini omnetpp.ini At the end of the page click on the More \u0026gt;\u0026gt; link. And make sure all fields in the Advanced area are empty. For Projects to build select Do not build automatically before launch Now Apply your changes and try your configuration by clicking Debug  The following images shows the final debug configuration:\n Final debug configuration    The OMNeT++ Ambassador The OMNeT++ Ambassador is the intermediate component between OMNeT++ and Eclipse MOSAIC. As it implements the interface of an abstract federate ambassador in Eclipse MOSAIC. In the initialization phase the Ambassador applies for the TimeManagement policies time constrained and time regulated at the RTI. Remind that time constrained means that the time advances of the OMNeT++ Federate are dependent on the other simulators in the federation and time regulating means that the OMNeT++ Federate itself can prevent other federates from advancing their time.\nThe OMNeT++ simulation starts initially with an empty event queue and hence it needs to receive an interaction to fill the event queue with the first events to be processed. That means that the typical time management cycle in the Ambassador starts at step two with the Receive Interaction procedure. Note that messages within Eclipse MOSAIC usually effect more than one interaction e.g. a VehicleUpdates interaction contains information for added nodes and moved nodes. These are exchanged with OMNeT++ using a simple byte protocol. After this procedure the third step of time management cycle is processed with the initial Time Advance Grant. This is the point when the OMNeT++ simulation is able to start and the initialization phase is finished. Hence the time management cycle can be executed from first step which is waiting for a new NER until no federate requests further events and the simulation is finished.\nThe Time Representation One important issue for the simulation coupling is the common representation of the logical time at the RTI and the different federates in the federation. Normally, the time is a federate-defined abstract data type. The requirements for such a time are the ability for comparison and addition and most important the possibility of conversion without the loss of precision. Otherwise, deadlocks in the synchronization procedure are guaranteed. On the one hand Eclipse MOSAIC treats times as a 64-bit integer with a resolution of nanoseconds. On the other hand the OMNeT++ simulation time is represented by the type simtime_t which is a typedef to double. It is generally known that conversions from floating point to fixed point are vulnerable to rounding errors. To circumvent this issue the underlying raw 64-bit integer of the simtime_t representation is also made accessible, which works perfect if the scale exponent for time precision was previously initialized to $-9$ (i.e. nanoseconds).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e17d5285bdeec55226cf2b05562bd701","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/omnetpp_details/","section":"docs","summary":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them.","tags":null,"title":"OMNeT++ Federate Implementation","type":"docs"},{"authors":null,"categories":null,"content":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC. The implementations can be found in the package org.eclipse.mosaic.lib.model.delay. Note prior to the release of MOSAIC delay values were configured using Milliseconds as unit, this has been refactored to Nanoseconds. Alternatively you can specify delay values using a String with a unit (eg \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot;).\nDelay Models The Delay class represents an implementation for a specific delay model. The following model implementation exist:\nConstantDelay The ConstantDelay-class is arguably the simplest implementation of Delay. This model is configured with a single field delay, which the generateDelay(...)-method will simply return.\nWhile this delay doesn\u0026rsquo;t provide realistic behaviour in most cases it is optimal for testing purposes as it can easily be retraced.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot; }  SimpleRandomDelay The SimpleRandomDelay model allows for the generated delays to be randomly distributed between a minDelay and a maxDelay. Additionally, the steps field is used to limit the amount of different delays, by equally separating the interval into the amount of steps specified. This delay provides a simple and performant way to randomize and thereby more realistically reflect real-world delays.\nFor example, with the configuration below, one of the following delays is randomly chosen: [0.4, 0.9, 1.4, 1.9, 2.4] ms.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;0.4 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.4 ms\u0026quot; }  Gamma Delays MOSAIC provides two types of delays using a Gamma-distribution to sample values, namely GammaRandomDelay and GammaSpeedDelay. The parameters for the used Gamma-distribution have been determined experimentally. The GammaSpeedDelay extends the GammaRandomDelay by a speed penalty. Both delay-types aim to provide more realistic solution, than the previous models, but come with the downside of complexity.\nConfigurations:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaSpeedDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"991360c7135b1da7033c0bd4be1d7e9f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/delay_models/","section":"docs","summary":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC.","tags":null,"title":"Delay Models","type":"docs"},{"authors":null,"categories":null,"content":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable. Users interested in a different kind of simulation of cellular communication may use other simulators and develop ambassadors connecting them to Eclipse MOSAIC.\nThe Cellular Simulator in the current state consists of three main modules:\n UplinkModule GeocasterModule DownlinkModule  The Geocaster module simulates a mandatory component for ITS communication. It is inspired by the several architectures from research projects as simTD or CONVERGE to enable ITS use cases over cellular networks. It mainly takes over the task of an addressing and routing component with geographic knowledge to support geo-addressing. However, it also supports regular topological addressing. The Uplink and DownlinkModule are responsible for the transmission simulation. They account for the aspects of transmission delays, packet losses and available data rates. In this context,Uplink and Downlink always refer to the direction towards respectively from the Geocaster. For instance, a transmission from an Internet-based server towards a vehicle would include an Uplink between the server and the Geocaster and a Downlink between the Geocaster and the vehicle. While the Uplink direction only allows point-to-point communication (Unicast), the Downlink supports point-to-point (Unicast) as well as point-to-multipoint (Multicast).\nCellAmbassador folder structure The Eclipse MOSAIC Cell simulator can be configured via three distinct configuration files, which can be found within the scenarios' folder structure:\n└─ \u0026lt;scenario_name\u0026gt; └─ cell ├─ cell_config.json ................ Cell ambassador configuration file ├─ network.json ..................... Network configuration file └─ regions.json ..................... Regions configuration file  The network and regions configuration files are referenced in the cellular ambassador configuration file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration We provide a cellular configuration file in the example scenarios of Tiergarten and Barnim. Please note that in the default configuration of this scenario the Cellular Simulator is deactivated. To activate the cellular simulator just enable the cell federate in the scenario_config.json:\n\u0026quot;federates\u0026quot;: { ... \u0026quot;cell\u0026quot;: true, ... }  The central configuration for the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/cell_config.json could look like this:\n{ \u0026quot;debugGeocasting\u0026quot;: false, \u0026quot;visualizeRegions\u0026quot;: true, \u0026quot;networkConfigurationFile\u0026quot;: \u0026quot;network.json \u0026quot;, \u0026quot;regionConfigurationFile\u0026quot;: \u0026quot;regions.json \u0026quot; }  The visualizeRegions-option from the cell_config.json is used to write a KML-file that visualizes the used cell regions. Google Earth can be used to display it.\nThe configuration for the global network in the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/network.json could look like this:\n{ \u0026quot;globalNetwork\u0026quot;: { \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;50 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } }  Server configuration Newer versions of MOSAIC will be able to support a new type of simulation units, called servers. Right now traffic management centers are handled in the same way as servers will be in the future. What differentiates servers from other units is, that they are treated as having no geographical location and instead are located \u0026ldquo;inside the internet.\u0026rdquo;. This concept omits prior shortcoming, where one would have to configure RSU\u0026rsquo;s as servers.\nServers are also configured in the network.json as follows:\n{ \u0026quot;globalNetwork\u0026quot;: { [...] }, \u0026quot;servers\u0026quot;: { { \u0026quot;id\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.5, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } } }, { [...] } } }  Servers get their configuration for the delay and retransmission models from the network.json and the configuration for the capacity-module has to be made from within an application, by activating the CellModule and properly setting the bit rates. This could look as follows:\ngetOs().getCellModule().enable( new CellModuleConfiguration() .maxUlBitrate(10000) .maxDlBitrate(10000) );  For the CellAmbassador to be able to recognize servers, the group-field in the mapping must match the id-field in the network.json, this also allows for multiple servers to utilize the same configuration. A mapping_config.json using the configuration from above could look as follows:\n{ ..., \u0026quot;tmcs\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ], ... }   Note that all bandwidths are given in bit per second and all delays in nanoseconds, unless explicitly defined differently. Also, every json configuration goes through a minifier, so comments are allowed in the configuration files. An example would be the comment before the globalNetwork option.\n Delay regions Additionally, the user has the option to define regions with individual delays. This can be used to simulate areas with bad reception, crowded areas etc.\nThe regions should be stored in \u0026lt;scenarioName\u0026gt;/cell/regions.json. An example definition for a single region called Ernst-Reuter-Platz could look like this:\n{ \u0026quot;regions\u0026quot;:[ { \u0026quot;id\u0026quot;: \u0026quot;Ernst-Reuter-Platz\u0026quot;, \u0026quot;area\u0026quot;: { \u0026quot;nw\u0026quot;: { \u0026quot;lon\u0026quot;:13.3249, \u0026quot;lat\u0026quot;:52.5131 }, \u0026quot;se\u0026quot;: { \u0026quot;lon\u0026quot;:13.3273, \u0026quot;lat\u0026quot;:52.5125 } }, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 4, \u0026quot;minDelay\u0026quot;: \u0026quot;50 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;120 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;220 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } ] }  Note that nw represents the upper-left (north-west) point of the rectangle and se the lower-right (southeast). For further information about the possible options, please refer to the Eclipse MOSAIC API documentation.\nThe actual configuration of the uplink and the downlink modules for each region exhibits the identical format as configuration of the globalNetwork in the network.json.\nWhen no regions are found, or if a node (a vehicle) is not within a specified region, the globalNetwork defined in the network.json-File will be used as the delay model.\nTransmission simulation One of the most important feature of the cellular simulator is an estimation of the delay experienced through the transport over the cellular network.\nThe cellular simulator offers various modes to estimate the delay of the transmissions. The type of estimation is specified with by delayType for the uplink and downlink for each region. You may also refer to the Delay-Chapter.\n delay.type = ’ConstantDelay’: The message is transmitted with the latency being exactly equal to delay. delay.type = ’SimpleRandomDelay’: The latency can assume different (randomly generated and uniformly distributed) values between minDelay and maxDelay. The number of different values is determined by steps. delay.type = ’GammaRandomDelay’: A gamma distribution is used to estimate the latency, with $ \\alpha $ = 2 and $ \\beta $= 2. The minimal delay minDelay is added to the result. The curve is fitted so that the maximum likelihood for the delay is exactly equal to expDelay. delay.type = ’GammaSpeedDelay’: This mode closely resembles the GammaRandomDelay. Additionally, a penalty for the velocity with which the node is moving is calculated. This penalty is then added to the original delay. The GammaRandomDelay and the GammaSpeedDelay are derived from a measurement campaign during a research project at the DCAITI.  The two different modes for the downlink are unicast and multicast which are configured separately. Multicast aims to simulate the features of Multimedia Broadcast Multicast Service (MBMS). The main difference in terms of the transmission for unicast and multicast is the handling of undeliverable messages. For unicast, the options lossProbability and maxRetries are used. Pr is short for packet retransmit and denotes the probability for a failed delivery and a subsequent retransmit. The maximum number of retries for the retransmission is configured through the maxRetries-option. The probability of a successful retransmit is recalculated on every try.\nIn case of multicast the lossProbability is used as packet loss rate. The value is factored into the delay calculation. In contrast to the unicast, just one transmission attempt is made for multicast.\nOperation Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.\nThe Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.\nIt supports the following addressing and casting schemes.\n CellTopocast is the normal unicast, where the Geocaster simply resolves the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn\u0026rsquo;t allow broadcast or anycast addresses, but any transmission protocols (tcp, udp).\n CellGeoUnicast addresses every node in the destination area individually. In this way it takes a geographic address and results in a loop to generate multiple unicasts.\n CellGeoBroadcast, which is basically MBMS, uses one broadcast to all nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"9a45880dc681c4e5ebf695dc5a761ad6","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_cell/","section":"docs","summary":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable.","tags":null,"title":"Network Simulator Cell","type":"docs"},{"authors":null,"categories":null,"content":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration The root node of the configuration is a list of environment events. Each event require the type of the event, a rectangle area, a strength and the time window. The following example shows the configuration of an \u0026ldquo;Obstacle\u0026rdquo; event which is valid in the designated area (Rectangle) during the simulation time between 0 to 2000 seconds:\n{ \u0026quot;events\u0026quot; : [ { \u0026quot;type\u0026quot;: { \u0026quot;sensorType\u0026quot;: \u0026quot;OBSTACLE\u0026quot;, \u0026quot;value\u0026quot;: 1 }, \u0026quot;location\u0026quot;: { \u0026quot;area\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;Rectangle\u0026quot;, \u0026quot;a\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53654, \u0026quot;longitude\u0026quot;: 13.42116 }, \u0026quot;b\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53435, \u0026quot;longitude\u0026quot;: 13.42366 } } }, \u0026quot;time\u0026quot;: { \u0026quot;start\u0026quot;: \u0026quot;0 s\u0026quot;, \u0026quot;end\u0026quot;: \u0026quot;2000 s\u0026quot; } } ] }  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e2e8c6da6205aac6b2834ce5bed20d3d","permalink":"https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/environment_simulator/","section":"docs","summary":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed.","tags":null,"title":"Environment Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs. This also holds true for the environment model and the vehicle model. However, simple models for vehicle, environment and the battery are provided and will be briefly explained in the following sections.\n  The Battery Simulator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Installation This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.\nConfiguration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/battery/battery_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ battery └─ battery_config.json ................. Battery ambassador configuration file  Vehicle model The vehicle model holds the general properties of a vehicle. Examples would be the weight of the vehicle and the voltage at which the electric engine operates. However, as with the other models, the provided class for the vehicle model direct affects what can be configured here. If other properties are needed for the vehicle, this is the right place to put them. To implement an own vehicle, the class AVehicleModel has to be extended.\nBattery model The battery model defines the battery used by the vehicle itself. Useful properties could be the number of cells and their capacity. As with the vehicle, this class can be freely defined and use configuration values placed in the batteryModelConfig-area. To implement an own battery model, the class ABatteryModel needs to be extended.\nEnvironment model Normally environmental factors like rolling resistance of the given underground or air drag go into this section. At the current state, just a minimal environment model is bundled with the battery ambassador, mainly to show what is possible. To implement a custom environmentmodel, AEnvironmentModel has to be extended.\nSample configuration { \u0026quot;vehicleModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.vehicle.ElectricSmart\u0026quot;, \u0026quot;vehicleModelConfig\u0026quot;: { \u0026quot;Mass\u0026quot;: 1060, \u0026quot;ReferenceArea\u0026quot;: 1.95, \u0026quot;DragCoefficient\u0026quot;: 0.375, \u0026quot;TankToWheelEfficiency\u0026quot;: 0.7, \u0026quot;EletricMotorOperatingVoltage\u0026quot;: 350, \u0026quot;ConsumerOperatingVoltage\u0026quot;: 12 }, \u0026quot;batteryModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.battery.VerySimpleBatteryModel\u0026quot;, \u0026quot;batteryModelConfig\u0026quot;: { \u0026quot;NumberOfCells\u0026quot;: 93, \u0026quot;CellVoltage\u0026quot;: 4.3, \u0026quot;CellCapacityInAh\u0026quot;: 50, \u0026quot;eff_Summer\u0026quot;: 0.8448, \u0026quot;RechargingType\u0026quot;: 2, \u0026quot;MinSOC\u0026quot;: 0.30, \u0026quot;MaxSOC\u0026quot;: 0.70 }, \u0026quot;environmentModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.environment.DefaultEnvironment\u0026quot;, \u0026quot;environmentModelConfig\u0026quot;: { \u0026quot;Gravity\u0026quot;: 9.81, \u0026quot;FluidDensity\u0026quot;: 1.293, \u0026quot;RollingResistanceCoefficient\u0026quot;: 0.01 }, \u0026quot;consumers\u0026quot;: [ { \u0026quot;Radio\u0026quot;: 10 }, { \u0026quot;HeadLight\u0026quot;: 100 } ] }  This listing shows how the vehicle, environment and battery model classes for the bundled models are configured. Additionally, an arbitrary number of consumers can be configured that draw additional power from the battery. In this case, headlights and a radio are pre-defined.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"564b92ca6ad0f78206e0f1291d3a1002","permalink":"https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/battery_simulator/","section":"docs","summary":"The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs.","tags":null,"title":"MOSAIC Battery Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.\nRelease Date 2020-10-19\nChangelog [M+] Moved main code to new public repository github-com/eclipse-mosaic [M+] Changed license to EPL 2.0 [M+] Revised and refactored all public code. [M+] Significantly improved and extended the documentation, including new tutorials [M-] Replaced dependencies which are incompatible with EPL. [M+] Major overhaul of configuration files, e.g. * vsimrti/vsimrti_config.xml -\u0026gt; scenario_config.json * etc/defaults.xml -\u0026gt; etc/runtime.json [A+] Mapping configuration has been extended with new features (e.g. typeDistributions, parameter variations). [A+] New API for traffic light applications [C+] SNS supports most important Geo-Routing features for ad-hoc multihop communication [T+] Now supports SUMO 1.7.0  Changelog (Features and Bugfixes) Legend:\n[M] Eclipse MOSAIC\n[A] Application simulator\n[B] Battery simulator\n[C] Communication simulator\n[E] Environment simulator\n[N] Navigation component\n[S] Scenario-convert\n[T] Traffic simulator\n[+/-] new Feature/Bugfix\n","date":1603065600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1603065600,"objectID":"cc4c07b071bbda44d7b128dbd1954e1e","permalink":"https://www.eclipse.org/mosaic/post/release-20-0/","publishdate":"2020-10-19T00:00:00Z","relpermalink":"/mosaic/post/release-20-0/","section":"post","summary":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.","tags":null,"title":"First release of Eclipse MOSAIC","type":"post"},{"authors":[],"categories":[],"content":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.\nWhether dynamic lane assignment or traffic light phase assistant, new mobility services are designed to increase safety, efficiency, comfort, and facilitate environmentally friendly transport. The Eclipse MOSAIC simulation environment allows to explore how this can be achieved, before the services are tested in field trials on the road. Eclipse MOSAIC can also be used for testing driver assistance systems and to optimize the entire traffic.\nFlexible coupling of simulators Eclipse MOSAIC integrates, depending on the simulation scenario, different aspects like individual building blocks into a holistic system, e.g., traffic congestion, battery charging of electric cars, or communication between other road users and a central cloud. The level of detail for individual aspects is variable: from a rough mobility scenario for an entire city to detailed individual driving maneuvers.\nThe open-source version of Eclipse MOSAIC already includes several simulators, e.g., Eclipse SUMO for traffic and OMNeT++ and ns-3 for communication. Further simulators can be coupled, e.g., Fraunhofer FOKUS offers the simulator PHABMACS for the realistic modeling of autonomous vehicles.\nIn addition to the simulator coupling, Eclipse MOSAIC manages the following tasks:\n Federation: Individual simulators are interchangeable within a scenario. Interaction: Information from one simulator is also taken into account by others. Time: All simulators run synchronously.  Additionally, Eclipse MOSAIC offers several tools for evaluation and visualization of the results, which are also included in the open-source package.\nIn the recently completed EU project INFRAMIX, Eclipse MOSAIC was used to test scenarios for the future road that allow mixed traffic between conventional and automated vehicles.\nFraunhofer FOKUS has been a strategic development member of the Eclipse Foundation since May of this year and works in close cooperation with the partners of the working groups OpenMobility and openADx (Open Source for Autonomous Driving).\nFurther information about Eclipse MOSAIC: https://www.eclipse.org/mosaic https://github.com/eclipse/mosaic\nFurther information about INFRAMIX: https://www.fokus.fraunhofer.de/de/fokus/news/inframix-projekt_2020_08\nFurther information about EclipseCon: https://www.eclipsecon.org/2020\n","date":1602806400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1602806400,"objectID":"945968ed12d4d56ceff36a8ffcc80747","permalink":"https://www.eclipse.org/mosaic/post/eclipse-mosaic/","publishdate":"2020-10-16T00:00:00Z","relpermalink":"/mosaic/post/eclipse-mosaic/","section":"post","summary":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.","tags":[],"title":"Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC","type":"post"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"8576ec274c98b3831668a172fa632d80","permalink":"https://www.eclipse.org/mosaic/about/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/about/","section":"","summary":"Hello!","tags":null,"title":"About","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7cb4b52984a9d47af29166100a552aba","permalink":"https://www.eclipse.org/mosaic/get_in_contact/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/get_in_contact/","section":"","summary":"Eclipse MOSAIC.","tags":null,"title":"Contact","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"614f103684a170a5d2fd1d1f92949420","permalink":"https://www.eclipse.org/mosaic/contribution/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/contribution/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Contribution to Eclipse MOSAIC","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"bf47fe1505bc48f51aef798d7a4d34a6","permalink":"https://www.eclipse.org/mosaic/download/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/download/","section":"","summary":"List of links to download the latest releases and other components.","tags":null,"title":"Download","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7bb3ac9163e73505cd320646a459de77","permalink":"https://www.eclipse.org/mosaic/community/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/community/","section":"","summary":"Eclipse MOSAIC Community","tags":null,"title":"Eclipse MOSAIC Community","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"9eb50f9088083bebcb7e4cf99e22b9ed","permalink":"https://www.eclipse.org/mosaic/news/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/news/","section":"","summary":"News","tags":null,"title":"News","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"23d1e75f872528fc12f5f2b142375ff7","permalink":"https://www.eclipse.org/mosaic/publications/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/publications/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Publications","type":"widget_page"}]
\ No newline at end of file
+[{"authors":["fokus"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":-62135596800,"objectID":"cbf22d51976246e8f80b5f6a1df3bf83","permalink":"https://www.eclipse.org/mosaic/author/fraunhofer-fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/author/fraunhofer-fokus/","section":"authors","summary":"","tags":null,"title":"Fraunhofer FOKUS","type":"authors"},{"authors":null,"categories":null,"content":"Applications in Eclipse MOSAIC are simulated by the Eclipse MOSAIC Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;). To actively gain execution at some later point in time, an application can also schedule a generic event itself. When the application is executing, it has access to a set of methods, allowing to trigger actions like sensing messages or controlling the vehicle, influencing the current simulation (the application \u0026ldquo;acts\u0026rdquo;).\nDeveloping Applications Developing custom applications in Eclipse MOSAIC is rather easy. The best way to learn it is by looking at the source code of actual applications. For this purpose, we provide the source code of all tutorial applications and further examples.\nFor an easy understanding of the application API, the following questions and their answers should help:\n  What is required to get my own application to run in Eclipse MOSAIC? In Eclipse MOSAIC it is very easy to build your own application. First, it needs to inherit from the AbstractApplication class (see following section). Secondly, the application must be mapped to a vehicle (or RSU, or traffic light, \u0026hellip;) via the mapping configuration (see section mapping). Finally, the application must be compiled as a Jar-File and placed into the application directory of your scenario.\n  How can I access vehicle functions from within the application, such as sending V2X messages? Every applications has access to the OperatingSystem of the underlying unit which allows to change its state or to initiate actions, such as sending messages to other vehicles.\n  How can I react to events during the simulation, such as receiving V2X messages? For each application you decide, which events the application should listen to. For example, if your application needs to react upon incoming V2X messages, it simply implements the CommunicationApplication interface. In the following section you can find all available interfaces applications can implement.\n  Create a ’Hello world’ application based on Maven For this example you need to install Maven which is used to resolve required MOSAIC dependencies and to compile your application Java code into a Jar file. Follow the steps to build an example application:\n Create a new folder HelloWorldApp: └─ HelloWorldApp ├─ src | └─ main | └─ java | └─ HelloWorldApp.java └─ pom.xml   Place a pom.xml with the following content: \u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;project xmlns=\u0026quot;http://maven.apache.org/POM/4.0.0\u0026quot; xmlns:xsi=\u0026quot;http://www.w3.org/2001/XMLSchema-instance\u0026quot; xsi:schemaLocation=\u0026quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\u0026quot;\u0026gt; \u0026lt;modelVersion\u0026gt;4.0.0\u0026lt;/modelVersion\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic.app\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;HelloWorldApp\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;0.0.1\u0026lt;/version\u0026gt; \u0026lt;packaging\u0026gt;jar\u0026lt;/packaging\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;mosaic-application\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.0-SNAPSHOT\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; \u0026lt;/project\u0026gt;   Create a new application in src/main/java/HelloWorldApp.java: import org.eclipse.mosaic.fed.application.app.AbstractApplication; import org.eclipse.mosaic.fed.application.app.api.VehicleApplication; import org.eclipse.mosaic.fed.application.app.api.os.VehicleOperatingSystem; import org.eclipse.mosaic.lib.objects.vehicle.VehicleData; import org.eclipse.mosaic.lib.util.scheduling.Event; public class HelloWorldApp extends AbstractApplication\u0026lt;VehicleOperatingSystem\u0026gt; implements VehicleApplication { @Override public void onStartup() { getLog().info(\u0026quot;Hello World!\u0026quot;); } @Override public void onVehicleUpdated(VehicleData previousVehicleData, VehicleData updatedVehicleData) { getLog().info(\u0026quot;Driving {} m/s.\u0026quot;, updatedVehicleData.getSpeed()); } @Override public void onShutdown() { getLog().info(\u0026quot;Good bye!\u0026quot;); } @Override public void processEvent(Event event) { // ... } }   Build the application using maven: mvn clean install   Copy the JAR file from target/HelloWorldApp-0.0.1.jar to the application directory of your simulation scenario. Use the fully qualified name HelloWorldApp in the mapping_config.json to load the application onto vehicles.  Application Interfaces You may have noticed that the HellowWorldApp extends from the class [...].AbstractApplication\u0026lt;OS\u0026gt;. In order to define the type of unit your application can run on, you need to speficy the operating system by choosing one of the following:\n VehicleOperatingSystem - for applications mapped to normal vehicles. ElectricVehicleOperatingSystem - for applications for vehicles with electro mobility features. RoadSideUnitOperatingSystem - for applications mapped to RSUs. TrafficLightOperatingSystem - for applications mapped to traffic lights. TrafficManagementCenterOperatingSystem - for applications mapped to TMCs. ChargingStationOperatingSystem - for applications mapped to charging stations.  See package: org.eclipse.mosaic.fed.application.app.api.os.*\nFurthermore, your application can implement the following 7 interfaces in order to get informed on specific events:\n VehicleApplication - get informed when information about the vehicles state is updated. ElectricVehicleApplication - get informed on electric vehicle specific events. CommunicationApplication - react on incoming V2X messages. MosaicApplication - get informed on Eclipse MOSAIC internal events. TrafficLightApplication - get noticed when the traffic light program is changed. ChargingStationApplication - react on state changes of the charging station. TrafficManagementCenterApplication - get informed on state changes of road infrastructure.  See package: org.eclipse.mosaic.fed.application.app.api.*\n Basic Functions and Concepts for Applications The following section describes how applications are implemented.\nEvent hooks Applications are implemented by reacting to specific events. Those events are, amongst others:\n The simulation has started: All static units (e.g. road side units) are set up (onStartup() is called) Once a vehicle has been added to the simulation, all its configured applications are initialized (onStartup() is called) The data of the vehicle has changed, e.g. after the traffic simulator has finished one simulationstep (onVehicleUpdated() is called). A unit has received a V2X message from another entity (onMessageReceived is called). A unit which has send a V2X message via a ITS-G5 topocast receives an acknowledgement (onAcknowledgementReceived() is called).  Another example:\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .actor{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 text.actor \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .actor-line{stroke:grey;}#mermaid-1603209753374 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-1603209753374 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-1603209753374 #arrowhead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .sequenceNumber{fill:white;}#mermaid-1603209753374 #sequencenumber{fill:#333;}#mermaid-1603209753374 #crosshead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .messageText{fill:#333;stroke:#333;}#mermaid-1603209753374 .labelBox{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 .labelText,#mermaid-1603209753374 .labelText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopText,#mermaid-1603209753374 .loopText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:hsl(259.6261682243,59.7765363128%,87.9019607843%);}#mermaid-1603209753374 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-1603209753374 .noteText,#mermaid-1603209753374 .noteText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 sequence{fill:apa;}RTIApplicationSimulatorApplication1Application2VehicleRegistrationonStartup()onStartup()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()sendV2xMessage()V2xMessageTransmissionV2xMessageReceiptiononMessageReceived()VehicleUpdates (remove)onShutdown()onShutdown()RTIApplicationSimulatorApplication1Application2   Example sequence of onStartup, onUpdate, onMessageReceived and onShutdown of two applications.\nA onStartup() method, which enables the ITS-G5 communication module of the unit, could be implemented the following:\n@Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio().channel(AdHocChannel.CCH).power(50).create() ); }  A onMessageReceived() method, which reacts upon a DENM message, could be implemented as:\n@Override public void onMessageReceived(ReceivedV2xMessage receivedV2xMessage) { final V2xMessage msg = receivedV2xMessage.getMessage(); if (msg instanceof Denm) { Denm denm = (Denm)msg; GeoPoint eventLocation = denm.getEventLocation(); //TODO you can add further implementation here } }  Trigger own Events It is possible to trigger own events at specific times within the application. For this purpose, the application has access to an own event manager. Each event requires a simulation timestamp when it should be called, and an event processor.\nThe following code triggers an event in 10 seconds after the application has been initialied:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this); getOs().getEventManager().addEvent(event); } @Override public void processEvent(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  To address a specific method to process the event, Java lambda expressions could be used:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this::mySpecificMethod); getOs().getEventManager().addEvent(event); } public void mySpecificMethod(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  Using the Operating System Each application has access to the operating system of its unit. Depending on the type of unit, the operating system provides different methods. For example, an application which is mapped on vehicles, has access to the VehicleOperatingSystem by calling this.getOperatingSystem() (or this.getOs() to keep it short). The following examples show a bit of the capabilities the VehicleOperatingSystem provides:\nGet the current simulation time (in nanoseconds):\nlong time = this.getOs().getSimulationTime();  Return the name of the unit (e.g. \u0026ldquo;veh_0\u0026rdquo;):\nString nameOfUnit = this.getOs().getId();  Get access to vehicle data, such as speed, position, heading, and the like:\ndouble speed = this.getOs().getVehicleData().getSpeed(); GeoPoint position = this.getOs().getVehicleData().getPosition();  Change parameters of the vehicle during the simulation, such as its maximum speed:\nthis.getOs().requestVehicleParametersUpdate() .changeMaxSpeed(10) // m/s .changeMaxAcceleration(2.4) .apply();  Get the current lane index of the vehicle and change lane to left (within 5000 ms):\nint laneIndex = this.getOs().getRoadPosition().getLaneIndex(); int newLaneIndex = Math.max(0, laneIndex - 1); this.getOs().changeLane(newLaneIndex, 5000);  Sending a V2X message via ITS-G5 singlehop broadcast:\nMessageRouting routing = this.getOs().getAdHocModule().createMessageRouting().topoBroadCast(); V2xMessage message = new MyV2xMessage(routing); this.getOs().getAdHocModule().sendV2xMessage(message);  Park the vehicle in 200 meters at the right side of the road for 3 minutes:\ndouble distance = 200; double duration = 3 * 60 * 1000; IRoadPosition stopPosition = RoadPositionFactory.createAlongRoute( getOs().getNavigationModule().getRoadPosition(), getOs().getNavigationModule().getCurrentRoute(), 0, distance ); this.getOs().stop(distance, duration, Stop.StopMode.PARK);  Navigation The navigation of vehicles (i.e. calculation of routes) is handled completely by the Eclipse MOSAIC Application Simulator. Each vehicle is equipped with a navigation system which provides all required information and functions for navigational purposes:\n Retrieve the current position and heading of the vehicle. Get the target of the vehicle. Calculate various routes from the current position to an arbitrary target. Choose a suitable route out of existing ones from the current position to an arbitrary target. Switch onto a specific route.  In order to provide routing functionality, a map model based on Open Street Map data is used, which needs to be transformed before the simulation using scenario-convert. The map data including initial routes for vehicles is provided with the database file which needs to be located in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/\u0026lt;scenario_name\u0026gt;.db\nConfiguration If the database needs to be located somewhere else, the path can be specified in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ ... \u0026quot;navigationConfiguration\u0026quot;: { \u0026quot;databaseFile\u0026quot;: \u0026quot;path/to/scenario.db\u0026quot; } }  The following snippet show, how the navigation system can be used within an application:\n//get navigation module INavigationModule navigationModule = getOs().getNavigationModule(); //choose current target as target position RoutingPosition targetPosition = new RoutingPosition(navigationModule.getTargetPosition()); //set routing parameters to fastest route search RoutingParameters params = new RoutingParameters().costFunction(IRoutingCostFunction.Fastest); //calculate routes RoutingResponse response = navigationModule.calculateRoutes(targetPosition, params); //switch to best route if (response.getBestRoute() != null) { boolean routeSwitched = navigationModule.switchRoute(response.getBestRoute()); ... }  Access SUMO TraCI from applications If SUMO is used as a traffic simulator and a special functionality is required, the sendSumoTraciRequest function in the OperatingSystem can be used.\nThe function expects a string (a unique identifier which will be assigned to the response) and a byte array (representing the complete Traffic Control Interface (TraCI) request including the header). The message identifier can be an empty string.\nIn all cases the command will trigger a response. The application can receive the response from the method onSumoTraciResult. This method will receive a SumoTraciResult object. This response contains the specified identifier. The application must handle the identification process of the response itself.\n Be careful when using this interface and the TraCI commands. The commands are delivered to TraCI without any prior checks.\n   You can find the example application SumoTraciInteractionApp in the additional examples bundle on the DCAITI website.\n   Debugging of applications To debug an application, remote debugging needs to be used. The following steps need to be performed in order to debug the application:\n Open the application in your IDE. Modify your mosaic.sh or mosaic.bat by adding debug parameters to the java call:\njava -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4100 ... Add a new debug profile in your IDE for remote debugging. Make sure to correctly configure port 4100 (or whichever port you provided in step 2). Launch Eclipse MOSAIC with the argument -w 0 to disable the watchdog timer otherwise it will interfere with debugging. Connect your debugger in your IDE with the running simulation.  ","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"f3e4e878d3a3df21f512128da34ee9b3","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/","section":"docs","summary":"Applications in Eclipse MOSAIC are simulated by the Eclipse MOSAIC Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;).","tags":null,"title":"Basics in Application Development","type":"docs"},{"authors":null,"categories":null,"content":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated. It consists of the original simulator that is connected to its federate ambassador and an instance of an Eclipse MOSAIC ambassador. The federates run on top of the Eclipse MOSAIC Runtime Infrastructure (lower part of Figure 1) which offers services for federation-, interaction- and time management. The communication between the federates and the runtime infrastructure is enabled by ambassadors. More precisely, a federate that wants to access services of the RTI can use a designated RTI-Ambassador that provides access to the provided services. In the opposite direction, i.e. if the runtime infrastructure wants to invoke operations on the federate implementation, a federate ambassador is used. Each federate ambassador implements the same interface that is used by Eclipse MOSAIC to control the simulator and to provide interactions from other federates.\n Schematic illustration of Eclipse MOSAIC Runtime Infrastructure    Time Management The main problem in executing a federation is the synchronization of its federates. Each federate is a discrete-event simulator with an ordered event list from which sequentially the first event is processed. Consequently, the Time Management is necessary for coordinating the simulation and synchronizing participating federates. It assures that each federate processes its events in correct order.\nAccording to Fujimoto the time management in a federated environment includes two key components: Interaction (Message) order and time stamps. Note that we usually use the word \u0026lsquo;intercation\u0026rsquo; when talking about communication between federates, \u0026lsquo;message\u0026rsquo; will be used in the context of (V2X)-communication.\nThe Interaction Order service is completely implemented in Eclipse MOSAIC with the following design rationale: Each request of a federate to execute a local event is mapped to a global event within the Time management. Such an event consists of three attributes: simulation time, priority, and lookahead time. The simulation time defines the time in the simulation at which the event has to be processed. The priority allows defining an order of events that are scheduled at the same time. The third attribute, the lookahead time, describes an idle period following after an event. It is used to signalize that no further event will be scheduled and no interaction will be sent within this period. All events are scheduled by storing them in an event list in ascending order according to their simulation time. In case of equal simulation times, they are ordered in descending order to their priority. A time management cycle consists of three steps.\n  The federate invokes a time management service to request its logical time to advance. While Time Advance Request (TAR) is more suitable for time-stepped simulators, Next Event Request (NER) is the preferred primitive for event-driven federates.\n  The RTI delivers certain interactions to the federate. Each federate receives the interactions in the processInteraction() method.\n  The RTI completes the cycle by invoking a federate defined procedure called Time Advance Grant to indicate the federate’s logical time has been advanced. Eclipse MOSAIC supports the sequential and the parallel conservative mechanism for advancing time.\n   Interaction Management The exchange of data among federates is offered by the Interaction Management using interactions. Eclipse MOSAIC and its federates are decoupled through a publish-subscribe paradigm provided by the Interaction Management. A published interaction is forwarded to each subscriber directly after it has been published. However, a receiving federate is not allowed to advance its time based on an interaction but must request a time advancement if necessary. An interaction consists of its creation time, an identifier describing its type, and optional data. Interactions to exchange traffic, network, vehicle, and sensor data are predefined. These interactions are used to define a standardized communication behaviour.\nSubscribe Interaction Before a federate can receive interactions, it has to subscribe to them. The Interaction Management offers two different ways to subscribe to certain interactions. A federate can either define a interaction type only to receive all interactions of this type or, additionally, define conditions to filter interactions by their content. If a federate is not longer interested in subscribed interactions, it can rescind its interest.\nPublish Interaction Each federate is allowed to publish any interaction at any valid time of the simulation. After a interaction is published, the Interaction Management forwards the interaction to each federate that has subscribed to this type of interaction. A federate receiving a interaction can ignore it or request to advance its local time to handle this interaction.\n Federation Management The Federation Management is responsible for the administration of participating federates. This includes deploying, starting, stopping, and undeploying federates in a distributed system. Before running a simulation, the Federation Management creates an empty federation. After that, federates join the federation. Already joined federates can be removed from a federation, if they are not necessary for the rest of the simulation. After a simulation is finished, the Federation Management frees used resources.\nCreate Federation Creates an empty federation. After a federation is created, it is possible to join federates.\nJoin Federation A joining simulator is defined by a unique name and a FederateHandle. This handle contains the information whether start-up and deployment of the simulator are required to be handled by the Federation Management. In this case, further deployment and start-up information are included.\nStop Federation After a simulation is finished, all joined federates are resigned and their used resources are freed. All references are removed and necessary tasks to stop and undeploy the federate are executed.\nImplementation Details When a simulator is about to join a federation, a FederateHandle is passed to the Federation Manage- ment. A handle includes a Federate Ambassador that is responsible for all communication with the RTI as well as all identifiers for interactions it wants to subscribe to. Additionally, it contains two flags indicating how the simulator is started and if the simulator needs to be deployed by the Federation Management. For the deployment, the handle consists a reference to the directory including all binaries and host parameters consisting of an address and a directory in which the simulator shall be deployed. To start a simulator a start-command is included.\nIf the simulator is running, its ambassador is registered for coordinating the simulator during the sim- ulation run. Afterwards, the Federation Management initiates the subscription to interactions on behalf of an ambassador. Otherwise, before the ambassador is registered, the Federation Management starts and, if necessary, deploys the simulator on a local or a remote machine and connects it to its ambassador. The connection is created by redirecting the output of the started simulator to its ambassador. Based on the incoming data, the Federate Ambassador is responsible for configuring its communication with the simulator.\nLocal Federation Management In case a simulator is to be deployed on a local machine, its binaries are copied into the simulation directory that is defined within the host parameters. Afterwards, using the start-command the simulator is started in a new process and its output is redirected to the ambassador. Additionally, a mapping between ambassador and process reference is stored. Finally, when the federate is resigned, the ambassador is called to shut down its corresponding simulator. Finally, the mapped process is killed and all copied files are removed.\nDistributed Federation Management To administrate simulators on remote hosts, the Federation Management uses the Secure Shell (SSH) protocol to send commands and the associated Secure File Transfer Protocol (SFTP) to transfer binaries. After a process is started remotely, a mapping between ambassador, its process id, and the host on which is running are stored. Finally, when the federate is resigned, the remotely running process is killed and all binaries are removed.\n","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"1c65951f20f713cdbe7d5eea3c44701f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/","section":"docs","summary":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated.","tags":null,"title":"Core Concepts","type":"docs"},{"authors":null,"categories":null,"content":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the link above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document. Install additional software required by the simulation (see below), e.g. Eclipse SUMO  Folder Content └─ \u0026lt;mosaic-root\u0026gt; ├─ etc | ├─ hosts.json .................. Configuration of the execution host, e.g. temporary directory. | ├─ logback.xml ................. Configuration of log files and levels. | └─ runtime.json ................ Configuration of all Ambassadors and Federates coupled with the MOSAIC ├─ lib ............................. Directory with all Java compiled libraries required for MOSAIC. ├─ logs ............................ Directory with log files. ├─ scenarios ....................... Directory containing all simulation scenarios. ├─ tools ........................... Additional tools, like the HTML Visualizer. ├─ CONTRIBUTING.md ├─ LICENSE ├─ mosaic.bat ...................... Start script for Windows systems. └─ mosaic.sh ....................... Start script for GNU/Linux systems.  Additional Software The following table gives an overview of supported environments and simulators. Please make sure that you install those versions only.\n   Component Required  Version       Java yes Java 7 and below not supported Java 8  supported Java 11 and above  limited supported           Eclipse SUMO yes* 0.32.0 and below not supported 1.0.1 to 1.6.0  supported above 1.6.0  not tested    OMNeT++ optional 5.4 and below not supported  5.5  supported 5.6 and above  not supported    INET optional 4.0 and below not supported  4.1  supported 4.2 and above  not supported    ns-3 optional 3.27 and below not supported 3.28  supported 3.29 and above  not tested    * All provided scenarios require SUMO to be installed. However, if a different traffic or vehicle simulator is coupled, SUMO is not certainly required.\nUpdate Eclipse MOSAIC In order to update Eclipse MOSAIC to a new version, please perform the following steps manually:\n Backup your personal simulation scenarios from MOSAIC\u0026rsquo;s scenarios directory. Remove your old MOSAIC installation completely. Install MOSAIC by extracting the current binary archive from above. Copy your simulation scenarios back to MOSAIC\u0026rsquo;s scenarios directory. Take care of possible updates of the used software and simulators from third party (see the Compatibility Matrix above).  ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"0d7696d24c78e212b3f7477df55bfbb6","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/","section":"docs","summary":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the link above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document.","tags":null,"title":"Download Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.g. traffic, communication, application, electricity, or other).\nEach of the simulators must implement an interface, the so-called Ambassador. The ambassador communicates with the actual simulator, which is represented by the Federate. For some cases, if the simulator is directly coupled with the RTI (e.g. Application, or cell), the ambassador also represents the federate. This architecture allows a simple coupling of own simulators.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TraCIProtobufEclipse MOSAIC RTIEclipse SUMOOMNeT++ApplicationAmbassadorSumoAmbassadorOmnetppAmbassador   The following simulators are coupled already with MOSAIC:\n table th:first-of-type { width: 26%; }     Domain Simulator Name Description     Application Simulation MOSAIC Application Application prototyping and simulation.        Traffic / Vehicle Simulation Eclipse SUMO Microscopic Traffic simulation.    PHABMACS Sub-microscopic vehicle simulation with 3D visualization. Documentation will be published soon.        Network / Communication Simulation OMNeT\u0026#43;\u0026#43; Event-based network simulator for ITS-G5 and cellular communication.    ns-3 Event-based network simulator for ITS-G5 and cellular communication.    MOSAIC Simple Network Simulator Simulator for ITS-G5 ad-hoc communication using simplified models.    MOSAIC Cell Simulator for cellular communication.        Environment Simulation MOSAIC Environment Environmental event simulation.        E-Mobility Simulation MOSAIC Battery Electric vehicle simulation.    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7998013f795ff6ddbb68d3d1e213effe","permalink":"https://www.eclipse.org/mosaic/docs/simulators/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/","section":"docs","summary":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.","tags":null,"title":"Overview","type":"docs"},{"authors":null,"categories":null,"content":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.bat -s \u0026lt;scenario-name\u0026gt; mosaic.bat -c .\\scenarios\\\u0026lt;scenario_name\u0026gt;\\scenario_config.json  CLI Options The Eclipse MOSAIC start script supports the following arguments:\n table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 80%; }     Option Description     -c\n--configuration The primary configuration file which is scenario dependent and located in the according scenario folder. This file transitively includes other necessary configuration files. Usually you will use the file \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json.   -s\n--scenario If the main configuration file of your scenario is located in the default scenario directory of MOSAIC (i.e. in \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json), this option can be used instead of the -c option by passing only the scenario name -s \u0026lt;scenario_name\u0026gt;.   -w\n--watchdog-interval The interval of the internal alive check (in seconds) which is used by MOSAIC to detect execution stalls. This parameter is not mandatory and it is also possible to turn off the watchdog (-w 0) for debug sessions.   -o\n--log-level Override all specified logging-levels. This option is useful for debugging simulations. For example logging every possible event would be done with -o TRACE.   -b\n--realtime-brake With this parameter, the simulation will be slowed down to a desired Real Time Factor, if possible. When simulations already run slower than real time, this factor will have no effect. For example, use -b 1 to execute the simulation in real time.   -r\n--random-seed The global random seed to set for the simulation run. This is usually defined in the scenario_config.json, but can be overridden using this option.   -v\n--start-visualizer Opens a page in your default browser which visualizes all vehicle movements of the simulation on a map. This option only works, if your scenario is configured with the Websocket Visualizer.   -h\n--help Prints a help screen.    While Eclipse MOSAIC is running, it prints some information on the command line:\n[user@gnulinux mosaic]$ ./mosaic.sh -s HelloWorld 2020-09-08 16:46:09,794 INFO ROOT - Running Eclipse MOSAIC 20.0-SNAPSHOT on Java JRE v1.8.0_202 (AdoptOpenJdk) 2020-09-08 16:46:09,941 INFO FederationManagement - Start federation with id 'HelloWorld' 2020-09-08 16:46:09,943 INFO FederationManagement - Add ambassador/federate with id 'application' 2020-09-08 16:46:09,944 INFO FederationManagement - Add ambassador/federate with id 'mapping' 2020-09-08 16:46:09,945 INFO FederationManagement - Add ambassador/federate with id 'sumo' 2020-09-08 16:46:09,946 INFO FederationManagement - Deploying federate 'sumo' locally in .\\tmp\\sumo 2020-09-08 16:46:09,962 INFO FederationManagement - Starting federate 'sumo' locally in .\\tmp\\sumo 16:46:17 - Simulating: 195000000000ns (195.0s / 1000.0s) - 19.5% (RTF:33.10, ETC:25.2s)  The current simulation progress is shown in the following format.\n current wall clock time current simulation time in [ns] and [s] progress in % Real Time Factor (RTF) and Estimated Time to Completion (ETC)  The RTF is the ratio of simulated time to simulation duration in wall clock time, e.g. a real time factor greater than 1.0 means, the simulation is running faster than real time. Both RTF and ETC are calculated based on the performance of the last five seconds of the simulation and should only give a rough overview, how long a simulation can take. Depending on the simulation setup, the values can differ heavily between start and end of a simulation.\nScenario Configuration The configuration of a simulation scenario consists of a detailed description for each coupled simulator. The main configuration file is found under scenario_config.json, which defines the list of coupled simulators:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  This way, simulators can be easily added or removed from the simulation. Each of the coupled simulators is configured in the directory of the scenario_config.json file. The release bundle comes with a set of tutorial scenarios, which are described in detail in the Tutorials section.\nGather results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time. Moreover, Eclipse MOSAIC offers uniformly formatted and visually prepared results using various  Visualizer implementations.\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7482da389f363e79fed6bdad86e18c99","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/","section":"docs","summary":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.","tags":null,"title":"Run a single simulation","type":"docs"},{"authors":null,"categories":null,"content":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.\nThe following file structure shows the minimum setup of a typical simulation scenario in Eclipse MOSAIC:\n└─ \u0026lt;scenarioName\u0026gt; ├─ application | └─ \u0026lt;scenarioName\u0026gt;.db................ Scenario database file ├─ mapping | └─ mapping_config.json ............. Mapping configuration file ├─ sumo | └─ \u0026lt;scenarioName\u0026gt;.net.xml .......... SUMO network file | └─ \u0026lt;scenarioName\u0026gt;.sumocfg .......... SUMO configuration file └─ scenario_config.json ............... Basic configuration of the simulation scenario  In addition to those files, each simulator need to be provided with their custom configuration files.\nMain Configuration The main configuration file of a scenario is scenario_config.json. In this file basic properties are configured, such as the name of the scenario, the random seed, and activated simulators. Such a file looks like the following:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } }, \u0026quot;network\u0026quot;: { \u0026quot;netMask\u0026quot;: \u0026quot;255.255.0.0\u0026quot;, \u0026quot;vehicleNet\u0026quot;: \u0026quot;10.1.0.0\u0026quot;, \u0026quot;rsuNet\u0026quot;: \u0026quot;10.2.0.0\u0026quot;, \u0026quot;tlNet\u0026quot;: \u0026quot;10.3.0.0\u0026quot;, \u0026quot;csNet\u0026quot;: \u0026quot;10.4.0.0\u0026quot;, \u0026quot;serverNet\u0026quot;: \u0026quot;10.5.0.0\u0026quot;, \u0026quot;tmcNet\u0026quot;: \u0026quot;10.6.0.0\u0026quot; } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  The following fields needs to be configured:\n id - The name of the scenario duration - The duration of the simulation in seconds. randomSeed - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken. projection - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting here is crucial to get correct results that map to real world coordinates so the simulation results can be visualized in some way. The center coordinate will be used to determine the correct UTM zone, the cartesianOffset can be determined by having a look at the traffic simulators network file, e.g. SUMOs *.net.xml contains this information in the netOffset attribute of the location tag. network - Within this config the address resolution scheme is specified. The subnets for all unit types are described here. Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address space would be to small to provide enough addresses. In such cases, the netMask and all subnets have to be configured accordingly. Last but not least, the federate tags define which simulators are active in the simulation.  Traffic Simulator Configuration The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. sumo . For example, the \u0026lt;scenarioName\u0026gt;.sumo.cfg describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:\n\u0026lt;configuration\u0026gt; \u0026lt;input\u0026gt; \u0026lt;net-file value=\u0026quot;MyScenario.net.xml\u0026quot; /\u0026gt; \u0026lt;route-files value=\u0026quot;MyScenario.rou.xml\u0026quot; /\u0026gt; \u0026lt;/input\u0026gt; \u0026lt;/configuration\u0026gt;  While the *.net.xml is a mandatory file to be placed within the sumo directory, the *.rou.xml is automatically generated by the SumoAmbassador when the simulation is started. More information on the configuration of SUMO can be found here.\nApplications and Mapping Vehicles Usually you want the simulated vehicles to be equipped with some kind of applications that influence the vehicles behavior. To do that you copy the jar files of your applications to the folder \u0026lt;scenarioName\u0026gt;/applicationNT . Having the applications in place you will have to create a mapping_config.json file in the folder \u0026lt;scenarioName\u0026gt;/mapping .\nThe following file would spawn 1 vehicle every five seconds (720 veh/hour divided by 3600 sec) until it reaches the max number of vehicles: 500. All the vehicles would be equipped with an application sending CA-messages periodically.\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ] }  Traffic lights If you want to simulate traffic lights equipped with applications, traffic lights should be defined in the simulator specific configuration file and also added to the mapping configuration file. The applications can be equipped by explicitly specifying them as \u0026ldquo;applications\u0026rdquo;\n{ \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp\u0026quot; ] } ] }  or by referring to previosly defined prototypes:\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle\u0026quot; ] }, { \u0026quot;name\u0026quot;: \u0026quot;TrafficLight\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ], \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  Please note that traffic light name and traffic light itself in the mapping file stand for a traffic light group controlling a whole junction. Traffic light group can consist of many individual traffic lights controlling an exact lane. The value of the \u0026ldquo;tlGroupId\u0026rdquo; key MUST coincide with the name of the traffic light group in the traffic simulator related configuration file (with tlLogic id for SUMO and with junction id for Phabmacs).\nFor SUMO, the description of traffic light groups and their programs can be found in scenarioname.net.xml:\n\u0026lt;tlLogic id=\u0026quot;26704448\u0026quot; type=\u0026quot;static\u0026quot; programID=\u0026quot;1\u0026quot; offset=\u0026quot;0\u0026quot;\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;GGrG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;yyry\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;rrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rryy\u0026quot;/\u0026gt; \u0026lt;/tlLogic\u0026gt;  mapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  More information on the mapping configuration can be found here.\nFor more information about how SUMO traffic lights work please refer to SUMO Traffic Lights.\nFor Phabmacs, one should create a separate configuration file containing the description of traffic light groups and traffic light programs.\nmapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  phabmacs_config.json:\n{ ... \u0026quot;ttlFile\u0026quot;:\u0026quot;berlinTrafficLights.ttl.json\u0026quot;, ... }  An example of how the traffic light configuration can look like in berlinTrafficLights.ttl.json:\n{ \u0026quot;programs\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;default\u0026quot;, \u0026quot;phases\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;duration\u0026quot;: 10, \u0026quot;groupStates\u0026quot;: [ \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot; ] }, { \u0026quot;id\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;duration\u0026quot;: 15, \u0026quot;groupStates\u0026quot;: [ \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot; ] } ], \u0026quot;transitions\u0026quot;: [ { \u0026quot;from\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;yellowPhaseDuration\u0026quot;: 3, \u0026quot;allRedPhaseDuration\u0026quot;: 3, \u0026quot;redYellowPhaseDuration\u0026quot;: 1 }, { \u0026quot;from\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;yellowPhaseDuration\u0026quot;: 3, \u0026quot;allRedPhaseDuration\u0026quot;: 6, \u0026quot;redYellowPhaseDuration\u0026quot;: 1 } ] } ], \u0026quot;junctions\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;signalGroups\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;K1\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51187173469569, \u0026quot;longitude\u0026quot;: 13.309426296977083 } }, { \u0026quot;id\u0026quot;: \u0026quot;K2\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.511666041314484, \u0026quot;longitude\u0026quot;: 13.3092408198885 } }, { \u0026quot;id\u0026quot;: \u0026quot;K3\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51155112036543, \u0026quot;longitude\u0026quot;: 13.30933672655086 } }, { \u0026quot;id\u0026quot;: \u0026quot;K4\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51200251720905, \u0026quot;longitude\u0026quot;: 13.30936414260184, \u0026quot;heading\u0026quot;: 180.0 }, \u0026quot;lanes\u0026quot;: [ 0 ] } ], \u0026quot;availablePrograms\u0026quot;: [ \u0026quot;default\u0026quot; ] } ] }  The applicationNT folder furthermore needs a generated database file \u0026lt;scenarioName\u0026gt;.db . This database file contains information about the road network (road topology) and all routes the vehicles can drive on. This file is usually generated by the tool scenario-convert, which is described here in detail.\nCommunication Simulator The configuration of the communication parameters are usually not dependent from the location of the road network. Therefore, most of the required files can be extracted from other scenarios, such Barnim or Tiergarten. Depending on the simulator you will need to configure the geographic extend of the simulation area. You can find that data in the traffic simulators network file, e.g. SUMOs *.net.xml contains this information in the convBoundary attribute of the location tag.\n For OMNeT++, it concerns the values of constraintArea in the omnetpp.ini For the Eclipse MOSAIC Cell simulator, the expansions do not need to be configured directly. However, the areas of the configured regions (in regions.json) have to be in line with the scenario location. The SNS also comes without an additional expansion definition.  Further information on the communication simulators can be found in: ns-3 SNS Eclipse MOSAIC Cell OMNeT++\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"911d7d211da284d47641d647331b899d","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/","section":"docs","summary":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.","tags":null,"title":"Simulation Scenarios","type":"docs"},{"authors":null,"categories":null,"content":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created. It runs in the browser and shows an OpenLayers Map with markers, indicating the positions of all vehicles, as well as overall the simulation progresses.\n Red vehicles are sending messages and green vehicles are receiving messages at that specific point of time in the simulation.   To start the visualization, simply open the bin/tools/visualizer.html in your browser. As soon as the page has finished loading all of its content, it starts trying to connect to the WebSocket created by the Eclipse MOSAIC simulation. The WebSocket is also enabled by default for the tutorial scenario Barnim. For more details see the file Barnim/visualizers/visualizer_config.xml.\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;visualizer id=\u0026quot;websocket\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.WebsocketVisualizerConfig\u0026quot;\u0026gt; \u0026lt;synchronized\u0026gt;true\u0026lt;/synchronized\u0026gt; \u0026lt;port\u0026gt;46587\u0026lt;/port\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageReception\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageTransmission\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;RsuRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;TrafficLightRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;/subscriptions\u0026gt; \u0026lt;/visualizer\u0026gt; \u0026lt;/configuration\u0026gt;  As soon, as the simulation is running, you should see vehicle markers moving around and indicating if they are sending V2X messages (green) or receiving V2X message (red).\nThe status bar at the bottom of the page indicates the current connection/simulation state. There are four possible states:\n Connecting - Trying to connect to the WebSocket opened by Eclipse MOSAIC. Simulating - Periodically fetching simulation data and updating markers accordingly. Simulation finished - The simulation has finished. Error - An error occurred. Either there was a problem caused by the WebSocket itself, or a timeout occurred while trying to connect to the WebSocket.  After the simulation has finished, you can click on the reconnect button and then run the simulation again. You can also start the visualization at each simulation run, using the command line parameter -v. In that case, Eclipse MOSAIC will automatically open the bin/tools/visualizer.html in your default browser once the simulation starts.\n By default, the WebSocket Visualizer does not work on Microsoft Edge. UWP (UniversalWindows Platform) apps onWindows 10 do not have direct network access but are subject to a network isolation for security reasons, preventing localhost loopback by default. WhileMicrosoft Edge itself does allow localhost access, it treats localhost as an Internet site, which leads to restrictions e.g. for IPC over IP. To prevent this, an exception for Edgemust be added to the network isolation via the following command in an elevated command prompt:\nCheckNetIsolation LoopbackExempt -a -n=\u0026quot;Microsoft.MicrosoftEdge_8wekyb3d8bbwe\u0026quot;    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"4ceda5b87ab93856c1c3520fdb9ecfb3","permalink":"https://www.eclipse.org/mosaic/docs/visualization/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/","section":"docs","summary":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created.","tags":null,"title":"WebSocket Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.g. for communication, traffic, and application simulations. For the synchronization and data exchange, the provided runtime infrastructure uses common concepts similar to ones defined in the High Level Architecture (HLA ) standard proposed by the IEEE. Simulators are integrated following the ambassador/federate principle and messages (we call them interactions) are used to implement the time synchronization and data exchange amongst them. Consequently, the runtime infrastructure allows a flexible combination of time-discrete simulators for V2X simulations and the like. Based on the varying requirements for specific use-cases, arbitrary simulators can be added to Eclipse MOSAIC and will be executed together.\nThis online documentations provides detailed information for the current release of Eclipse MOSAIC. The following objectives are target of this documentation:\n1.\u0026nbsp; Getting Started Download and installation.Learn more    2.\u0026nbsp; Run Simulations Run single simulation or simulation sets.Learn more    3.\u0026nbsp; Visualization Visualize and evaluate simulation results.Learn more    4.\u0026nbsp; Simulators Configure external and integrated simulators.Learn more    5.\u0026nbsp; Building Scenarios Build your own simulation scenarios.Learn more    6.\u0026nbsp; Create Applications Develop applications for the Application Simulator.Learn more    7.\u0026nbsp; Extending Eclipse MOSAIC Extend Eclipse MOSAIC.Learn more     ","date":1596672000,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1596672000,"objectID":"4cdd37113783e47641dd300543c94e1b","permalink":"https://www.eclipse.org/mosaic/docs/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/docs/","section":"docs","summary":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.","tags":null,"title":"Eclipse MOSAIC Documentation","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more detail.\n Cellular Communication Ad-hoc Communication  Depending on the needs of the application, there are different approaches to solve the communication issue in Eclipse MOSAIC simulations. However, a distinction must be made between inter vehicle communication and Vehicle-to-X communication. Also, it is possible to modify the selected communication mode dependent on requirements.\nGenerally, the following modes are available based on network:\nCellular Communication\n Geobroadcast Geocast Topocast  Ad-hoc Communication\n Geobroadcast Geocast Topobroadcast Topocast   Cellular Communication The cellular network is known from wireless mobile communication and the principle is to divide the entire geographic area into several smaller parts called \u0026ldquo;cells\u0026rdquo;. Each cell has a fixed-location transceiver with a coverage ratio.\nEclipse MOSAIC enables the communication with all the existing vehicles via Geobroadcast mode or direct communication via Geocast in a specific area (circular, rectangular). In contrast, the Topocast mode is not restricted to a specific area.\nCellular Geobroadcast The principle function of the Geobroadcast is to communicate with all entities within a geographical area. Eclipse MOSAIC offers the possibility to configure a specific geographical area which can be either a circular or a rectangular area.\nThe following figure illustrates a vehicle veh_2 which is communicating with the other vehicles(veh_1, veh_3) within a radius R.\n Illustration of Geobroadcast in a spezific circular area   A circular communication area can be defined with the geoBroadCast(GeoCircle geoCircle) from an Eclipse MOSAIC application, as shown below:\nGeoCircle transmissionArea = new GeoCircle(GeoPoint.latlon(52.5, 13.2), 3000); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  A rectangular destination area can be defined similarly:\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Geocast Compared to Geobroadcasting, a Geocast addresses a receiver with an unique address. Addressing can be in the form of an IP-Address or a receiver-ID (e.g. veh_0). Again, the communication area can be configured as circular or rectangular.\nAssume, the veh_1 has a message which is addressed to veh_2. In order to send the message, veh_1 first examines whether the vehicle with ID veh_2 is located within the transmission area. If this is the case, the message will be transmitted. In figure below is this situation illustrated.\n Cellular Geocast to address a receiver within a defined area   The following methods are provided for the configuring the transmission area (Circle or Rectangle) and the addressing to the receiver(hostname or ip address).\n geoCast(GeoCircle geoCircle, String receiverName)  geoCast(GeoRectangle geoRectangle, String receiverName) geoCast(GeoCircle geoCircle, byte[] ipAddress) geoCast(GeoRectangle geoRectangle, byte[] ipAddress)  GeoCircle transmissionArea = new GeoCircle( GeoPoint.latlon(52.5, 13.2), 3000); String receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().geoCast(transmissionArea, receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Topocast Compared to Geocast or Geobroadcast, the Topocast is totally independent of geographical conditions and the addressing can be in the form of an IP-Address or a receiver-ID.\nThe next figure illustrates how the veh_0 is communicating with veh_1 in Topocast mode.\n Topocast mode for direct addressing without geographical constraints   The code example below shows how we can configure the requirements of the communication in Topocast mode.\nString receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().topoCast(receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));   Ad-hoc Communication The Ad-hoc network does not rely on a pre-existing infrastructure. Provided that vehicles are equipped with Ad-hoc modules, they are able to communicate with each other dynamically. In case of a sufficient number of Ad-hoc equipped vehicles, a message can be transferred via hops quickly over a long distance.\nEclipse MOSAIC also enables the communication via a specific Ad-hoc channel within the wireless Ad-hoc network. However, the Ad-hoc channels for vehicular communication are limited and standardized by the IEEE 802.11p. The licensed frequency band 5.9 GHz (5.85-5.925 GHz) for Intelligent Transportation Systems(ITS) will be used as Ad-hoc channels.\nThe following table shows the possible channels on the 5.9 GHz band used for V2X communication.\n   Channel Number 0 1 2 3 4 5 6     Channel Name SCH1 SCH2 SCH3 CCH SCH4 SCH5 SCH6   Frequency Band 5.86 5.87 5.88 5.89 5.9 5.91 5.92    Configuring AdHoc Capabilities The first step to enable your application to use Ad hoc capabilities, is to make sure it extends the AbstractSimulationUnit-class or one of its child-classes (e.g. VehicleUnit, ChargingStationUnit) found in package org.eclipse.mosaic.fed.application.ambassador.simulation. Additionally, if you want your application to act upon the reception or transmission of messages, make sure it implements the interface CommunicationApplication.\nOnce this is done, make sure to configure and enable the AdHoc-module in your application. Below is an example configuration taken from the Tiergarten-tutorial. Instead of configuring the .power(...)[mW] it is also possible to configure a .distance(...)[m].\n// Example of AdHocConfiguration (see TiergartenVehicle.java) @Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio() .channel(AdHocChannel.CCH) .power(50) .create()); }  Ad-hoc Topobroadcast In Topobroadcast mode, the communication between vehicles is regardless of the geographic conditions. However, the communicating entities must be operated on the same Ad-hoc channel and there are two options to use the Topobroadcast:\n Singlehop Multihop  Singlehop approach in Topobroadcast For Singlehop, it is not necessary to specify the number of hops explicitly which indicates the lifespan of a message, because in Singlehop, any message has a lifespan of hop = 1. Moreover, Eclipse MOSAIC allows to use the default method topoBroadCast() which automatically assigns a Control Channel (CCH) for the simulation entity and a lifespan based on the Singlehop principle. Alternatively you can use the non-default method topoBroadCast(AdHocChannel) in order to specify the Ad-hoc channel.\nBelow are some configuration examples of the default addressing method topoBroadCast() and non-default addressing method topoBroadCast(AdHocChannel).\nMessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  The following figure shows a simplified model based on the Singlehop principle. The veh_1 sends messages to all simulation entites(RSU, veh_2) that are using the same Ad-hoc channel. After transmission, the message can no longer be forwarded by the receiver.\n Overview Singlehop with specified Ad-hoc channel   Multihop approach in Topobroadcast In Multihop, the lifespan (amount of hops) of a message can be specified, allowing larger communication distances.\nThe following figure shows a Multihop example with a data package D (M, h = 2) from the vehicle veh_0 which contains a message M and a hop number h = 2. Assuming that a lot of simulation entities are using the same Ad-hoc channel the message can be forwarded over a along distance. After each forward the hop number will be incremented by 1. Since the hop amount was set to 2, the forwarding will stop after 2 increments.\n Overview Multihop principle   The next code snippet shows a configuration example with an Ad-hoc channel and a message lifespan hops = 2.\nAdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel, hops); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));   In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a routing protocol in network simulators (OMNeT++, ns-3). But the built in communication simulator SNS includes a simple routing protocol “Flooding”.\n  Ad-hoc Topocast In addition to the Topobroadcast, the communication in Topocast mode will be addressed explicitly to the recipient and the addressing can be done either through receiver name (vehicle-ID e.g. veh_0) or the IP-Address of the vehicle.\nfinal byte[] ipv4Address = {127,36,50,4}; AdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoCast(ipv4Address, hops, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geobroadcast In contrast to Cellular Network above, the simulation entities act as active communication part (transmitter and receiver) and all simulation entities within range are getting messages in Geobroadcast mode.\nAs example in the following illustration, The vehicles veh_0, veh_2, veh_3 and the RSU are Ad-hoc equipped and there is no vehicle in the communication range of RSU, therefore a hop is not possible to next vehicle veh_0. But the vehicles veh_2 and veh_3 are able to communicate with each other.\n Principle of Ad-hoc Geobroadcast mode   With the methods\n geoBroadCast(GeoCircle geoCircle) geoBroadCast(GeoRectangle geoRectangle)  of the Eclipse MOSAIC class AdHocMessageRoutingBuilder ,we are able, to configure the required area as a circle or a rectangle.\nGeoPoint center = GeoPoint.latlon(52.5, 13.2); GeoCircle adHocModule = new GeoCircle(center, 3000); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(adHocModule); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Analogous to the examples above, we can also configure the transmission area as a rectangle.\nThe next code snippet illustrates a possible configuration with a rectangular transmission area and a specified Ad-hoc channel.\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); final double radius = 3000.0; GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(transmissionArea, AdHocChannel.SCH1); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geocast The class AdHocMessageRoutingBuilder only has one method for Geocasting mode, geoCast(DestinationAddress destinationAddress, AdHocChannel adHocChannel). Communication is possible if the IP-address of receiver is known and both (receiver and transmitter) are on the same Ad-hoc channel.\n In this context the name Geocast is misleading, because a geological condition is not necessary.\n  As you can see in the next picture, the RSU uses the Ad-hoc channel SCH1 and several vehicles use different Ad-hoc channels. Assuming the RSU tries to send a message to veh_1 and has knowledge about the IP-Address of veh_1, if the vehicle veh_1 also uses the same channel SCH1, the transmission will be completed successfully.\n Ad-hoc Geocast communication between entities using the same channel   Below you can see a possible configuration.\nfinal byte[] ipv4Address = {127,36,50,4}; DestinationAddress destAddress = new DestinationAddress(ipv4Address); AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoCast(destAddress, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  CAM - Implementation A Cooperative Awareness Messages (CAM) consists of four parts:\n Header with generic information MessageBody ServiceList TaggedValue list  First of all, generic information like protocol version, creation time stamp are submitted. Normally this data set follows a network beacon, which already contains data like position and speed. Nevertheless, this functionality must be implemented in the network layer, that means in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body can contain either RSU or Vehicle awareness data. In the first case, only the RSU type is submitted, but this probably changes with a new CAM specification. In the second case, we provide date like vehicle width, length, position, speed, type and heading. The specification is not completely implemented, especially acceleration data and light, brake status are missing. The third part of the CAM specification, the service list, is also not implemented. This will probably change, when a list of services is defined by the ETSI. Last but not least a message contains a tagged list, a key value map with optional data. This is fully implemented and is used for our traffic light CAM messages, which provide the traffic light status in such a list.\nUser defined tagged values If you are required to exchange custom data within CAMs, the field UserTaggedValue can be used. For adding such data to the CAM, the application needs to implement the method beforeGetAndResetUserTaggedValue() from the CommunicationApplication interface. If a CAM is about to be sent, the custom data can be set using the getOs().setUserTaggedValue(byte[]) method. The receiver can simple access the data by accessing the field directly from the received CAM message:\nbyte[] value = cam.getUserTaggedValue (); if (value != null) { // read user tagged value} }  Timing Requirements CAMs are generated by the CAM Management and passed to lower layers when any of following rules apply:\n maximum time interval between CAM generations: $1s$; minimum time interval between CAM generations: $0.1s$; generate CAM when absolute difference between current heading (towards North) and last CAM heading \u0026gt; $4 deg$; generate CAM when distance between current position and last CAM position \u0026gt; $5m$ generate CAM when absolute difference between current speed and last CAM speed \u0026gt; $1ms$; These rules are checked latest every $100ms$;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"d32a5f22c5ae5d143ef2bc4c35a326c8","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/communication/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/develop_applications/communication/","section":"docs","summary":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell.","tags":null,"title":"Communication in Applications","type":"docs"},{"authors":null,"categories":null,"content":"The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.\nAttributes of Event The class Event contains the following attributes:\n long time: defines the time when the execution of the event is triggered. long nice: defines the priority of the event. When multiple events are scheduled for the sametime, the events are ordered in ascending order. List\u0026lt;EventProcessor\u0026gt; processors: is a list of components that shall process the event. Object resource: is an object that contains additional information designated for the processor of the event. The resource can be any object.  Methods of Event  Event(): There are multiple constructors for Event with different parameters. Every constructor sets default values for the attributes that are not defined by the arguments of the constructor. Event newTime(long time): allows the creation of a new event with a new execution time based String getResourceSimpleClassName(): returns the class name of the resource as String. int compareTo(Event event): implements the standardized Java interface Comparable. Toorder the events, first the time of the event is evaluated. In case the times are equal, the priority of the events is compared.  Interface EventManager The interface EventManager defines the method void addEvent(Event event) that needs to be implemented to add an event to the execution.\nInterface EventScheduler The interface EventScheduler extends the interface EventManager and is used for classes that trigger events.\nMethods of EventScheduler  boolean isEmpty(): returns true if the scheduler contains no elements, otherwise it returns false. long getNextEventTime(): returns the time of the next event. long getScheduledTime(): returns the time when the last event has been executed. List\u0026lt;Event\u0026gt; scheduleEvents(long time): returns a list of objects that are scheduled for a certain simulation time. Set\u0026lt;Event\u0026gt; getAllEvents(): returns a set of all events that are considered by the scheduler.  EventSchedulerImpl The class EventSchedulerImpl is an implementation of the interface EventScheduler.\nInterface EventProcessor The interface EventProcessor defines how the execution module gets the events. The execution module therefore has to implement the following methods:\n void processEvent(Event event): The module processes the event. boolean canProcessEvent(): returns true when the module is currently able to process new events, otherwise it returns false.  InterceptedEvent Class EventInterceptor In some situation it is useful to intercept events before they actually reach the intended processors. By intercepting the events it is possible to apply further monitoring and to filter which events the event processors receive. The class EventInterceptor is used to construct objects of the type InterceptedEvent. In the constructor it is possible to specify an EventManager that manages the intercepted events. Moreover, objects of the type EventProcessor can be specified that shall process the intercepted events.\nClass InterceptedEvent The class InterceptedEvents extends the class Event. It is used to provide type safe allocations of events that shall be intercepted.\n","date":1565481600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565481600,"objectID":"77fcc6d6f359287fbc8c37d7e6c54048","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/","publishdate":"2019-08-11T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/event_scheduler/","section":"docs","summary":"The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event.","tags":null,"title":"Event Scheduling","type":"docs"},{"authors":null,"categories":null,"content":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the Eclipse MOSAIC Application Simulator requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the applicationNT folder of the scenario. This database consists of the following tables:\nDatabase tables    Database Name Description     Node Contains all Nodes of the road network such as junctions and nodes describing the geometry of a road. Each node is identified by an unique ID (long).(refer to http://wiki.openstreetmap.org/wiki/Node)   Way Provides various properties for each way of the road network.(refer to http://wiki.openstreetmap.org/wiki/Way   WayConsistsOf Provides a list of nodes for each way of the road network.   Connection Contains a list of all connections of the road network including the way it originally is part of. Each connection describes an directed edge between two junctions in the road network.   ConnectionConsistsOf Provides a list of nodes each connection consists of.   Restriction Provides information about turn restrictions. Each turn restriction is described by a from-connection, a via-node, and a to-connection. This data is used for route calculation purposes.   TrafficSignals Contains detailed information about traffic lights and their signalling program. Currently not used.   Route Contains a list of all routes known for the simulation scenario. All routes referenced in the Mapping configuration must be presentin this table.   Building Corner Wall Provides information about buildings alongside the road network, e.g. for visualization purposes or sophisticated communication simulation models.   Version Contains the version of the Eclipse MOSAIC installation which was initially used to create the database.    Road network model This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A node is either a junction or describes the geometry of a road. A connection is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating way, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.\n Nodes and connections of the road network   Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern aaa_bbb_ccc):\n aaa - ID of the originating way bbb - ID of the node the connection starts at. ccc - ID of the node the connection ends in.   ID of connection in road network   Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:\nEdges are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern aaa_bbb_ccc_ddd):\n aaa_bbb_ccc - ID the connection the edge belongs to. ddd - ID of the node the edge starts at.   Structure of the Edge-ID   Lanes are described by an edge and a lane index. The identifier of a lane consists of two parts (using the string pattern aaa_bbb_ccc_ddd_e):\n aaa_bbb_ccc_ddd - ID the edge the lane belongs to. e - Index of the lane, starting by 0 (leftmost lane).   Structure of the Lane-ID   ","date":1565049600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565049600,"objectID":"1d92f8a189d6829395465481d4b2ddad","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/road_traffic/","section":"docs","summary":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates.","tags":null,"title":"Scenario Database","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"ad9ca34c3728e0522fcf5122cbadab93","permalink":"https://www.eclipse.org/mosaic/group/fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/fokus/","section":"group","summary":"The **Fraunhofer Institute for Open Communication Systems (FOKUS)** is the leading group behind the simulation framework Eclipse MOSAIC, which has now been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners and researches to test smart mobility services and intelligent traffic scenarios.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.\nOne example output could be the following:\nCELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000 V2X_MESSAGE_TRANSMISSION;6000000000;DENM;3;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;7000000000;veh_0;35.501624617716296;186.33236029307432;52.655993308955196;13.569065826100868;0.0;35.501624617716296;-0.6083753822837039;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_REGISTRATION;7000000000;veh_1;ElectricVehicle;null;Unequipped;5.0;2.5;70.0;2.6;4.5;0.5;1.0;1.0;0.0;1;1;0.0 VEHICLE_UPDATES;8000000000;veh_0;34.978651295430026;186.33236029306624;52.65568017869267;13.569019012494635;0.0;70.48027591314633;-0.5229733222862691;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false V2X_MESSAGE_TRANSMISSION;8000000000;DENM;4;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;9000000000;veh_0;35.73455352933612;186.33236029306624;52.65536028153272;13.56897118787549;0.0;106.21482944248245;0.7559022339060917;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_UPDATES;9000000000;veh_1;35.52345835176762;186.33265000325784;52.65599046030636;13.569112899208802;0.0;35.52345835176762;-0.5865416482323766;0.0;false;1;4067968_28830219_3290027832_2450938914;1;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false  Configuring the FileOutput  The main configuration file is located at \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenarioName\u0026gt;/output/output_config.xml  Basic configuration The following listing shows a basic example for the configuration of the FileOutput:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;filename\u0026gt;output.csv\u0026lt;/filename\u0026gt; \u0026lt;directory\u0026gt;.\u0026lt;/directory\u0026gt; \u0026lt;separator\u0026gt;;\u0026lt;/separator\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;...\u0026quot;\u0026gt; ... \u0026lt;/subscription\u0026gt; ... \u0026lt;/subscriptions\u0026gt;\u0026gt; \u0026lt;/output\u0026gt;  Basic configuration parameters for FileOutput\nThe usage of the parameters is described in the following table:\n   Parameter Usage     id Sets the id for the output   enabled If set to \u0026ldquo;false\u0026rdquo;, output is not used (default value is \u0026ldquo;true\u0026rdquo;)   update Sets the update interval in seconds for the output   start Sets the start time in seconds for visualization. This has nothing to do with the run time of the actual simulation   end Sets the end time in seconds for visualization. This has nothing to do with the run time of the actual simulation   loader Sets where the output is loaded from using the Java-class (see previous listing)    Basic Configuration of file output\nInteraction record Each interaction record is derived from a certain interaction type and composed of several entries,which are separated by Element separator.\nThe configuration of the file output is explained at the example of the VehicleUpdates interaction:\n\u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;\u0026gt; \u0026lt;entries\u0026gt; \u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Name\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Speed\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Longitude\u0026lt;/entry\u0026gt; \u0026lt;/entries\u0026gt; \u0026lt;/subscription\u0026gt;  Specific Configuration for interaction\n Attribute id indicates the interaction type, namely the class name of the interaction. The element entries defines the format and content of the finally visualized subscription record. The element entries is composed of several sub-elements entry, which correspond to columns of a subscription record and the sequence of the columns is the same as that of sub-elements entry.  In total, there are three basic types of entries:\nConstant Every quoted entry is defined as a constant. The content inside the quotation will be directly written into each corresponding interaction record.\n\u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt;  An example for constant type entry\nBasic method The Basic method type accesses values of the interaction object by using the appropriate getXXX() methods. For an entry, the root object for method invoking is the corresponding interaction class, here VehicleUpdates. As this object provides the simulation time by calling the getter method getTime(), the entry Time retrieves the requested value. If a null object is returned before the last method of cascaded methods is invoked, then null will be written to the corresponding field.\n\u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt;  An example for constant type entry\nIteration \u0026lt;entry\u0026gt;Updated:Id\u0026lt;/entry\u0026gt;  An example for method type entry with iteration\nThe first part of this example is Updated , which means to invoke the getUpdated method of class VehicleUpdates. Then a list of VehicleInfo objects is returned. The character : indicates the iteration, which means that for each of the VehicleInfo objects in the returned list the getId method is invoked.\nCascading \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt;  An example for method type entry with iteration and cascading\nIn this example, there is a dot operation, which is a cascade operation. Here getPosition method of VehicleInfo class is called and a GlobalPosition object is returned. Then we continuously invoke the getLatitude method of this GlobalPosition object.\nExtended Method All the methods involved above are the basic methods. There also is some functionality, which we cannot extract from these existing methods. So an extended method set is offered to meet these requirements and also as an extension point in the future.\n\u0026lt;entry\u0026gt;TimeInSec\u0026lt;/entry\u0026gt;  An example for simple extended method type entry\nWith existing methods of VehicleUpdates and its super class Interaction, we cannot get the timestamp of a interaction in second. (only Interaction.getTime, which returns a time in ns, is available). Here, getTimeInSec is a method extension for Interaction class. The extended method set will be listed later.\nFurther details The method type of entry definition supports cascaded iteration as follows:\n\u0026lt;entry\u0026gt;List1:List2:Id\u0026lt;/entry\u0026gt;  An example for cascaded iteration\nIt is possible to handle several different iterating operations, coming from the entry definition:\n\u0026lt;entry\u0026gt;Senders:Id\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Receivers:Id\u0026lt;/entry\u0026gt;  An example for multi-level iteration\ngetSenders() and getReceivers() are two different iterations. In this case, a combination of both Ids from the lists will be generated. The result may look like this:\nsender1, receiver1 sender1, receiver2 sender2, receiver1 sender2, receiver2  Output result of the above listing\nNote: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.\nAdditional features Limit output on time frame You can configure the FileVisualizer to write out interactions within a specific frame of simulation time. This can be configured by setting the start and end attributes accordingly:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; start=\u0026quot;300\u0026quot; end=\u0026quot;1000\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; ... \u0026lt;/output\u0026gt;  An example for restricting visualization of interactions within a time frame\nCompress Output The tag \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; can be added to the output configuration, in order to compress the output using gzip compression. This feature is suitable for large-scale scenarios with many outputs.\n\u0026lt;output id=\u0026quot;fileVisualizer\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; ... \u0026lt;/output\u0026gt;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"8a0ce6620232f8de93a82bc2989cf5de","permalink":"https://www.eclipse.org/mosaic/docs/visualization/filevis/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/filevis/","section":"docs","summary":"The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file.","tags":null,"title":"FileOutput","type":"docs"},{"authors":null,"categories":null,"content":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.\nEclipse MOSAIC Application Simulator The Application Simulator plays an important role in the simulation of vehicles and its functions. It provides the capability to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others) as well as possible interaction attempts between the units via different communication links.\nFolder Structure └─ \u0026lt;scenario_name\u0026gt; ├─ application | ├─ YourApplication.jar | ├─ application_config.json ............. Configuration file for the ambassador. | └─ \u0026lt;scenario_name\u0026gt;.db .................. Database file for navigation. └─ mapping └─ mapping_config.json ................. Configuration file for the ambassador.  This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenario_name\u0026gt;/application/application_config.json. However, it is not necessary to provide such file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.\nOverview Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application Mapping). The applications for the units are basically compiled JAVA classes, which extend the abstract class AbstractApplication. Those classes have to be deployed as pre-compiled JAR files into the application folder of the simulated scenario.\n  Overview of interaction between applications and the unit\u0026rsquo;s operating system with its modules. An example V2X message propagation is presented.   Application Operating System The AbstractApplication possesses a unit-specific OperatingSystem, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like slowDown() for vehicles).\nAs the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules NavigationModule (Navigation + Routing for vehicles) / RoutingModule (Routing-only for static units) and AdHocModule / CellModule with APIs dedicated to their purpose.\nThe following table lists all modules a unit\u0026rsquo;s operating system could provide.\n   Module Description     NavigationModule Full featured access to the central navigation component for vehicles   RoutingModule Access to routing functionalities for static units as RSUs   AdHocModule Communication via ad hoc mode, using WIFI or ITS G5 specific means (e.g. for addressing)   CellModule Communication via cellular services (different configuration / addressing modes)     Note: The presented communication modules AdHocModule, CellModule are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the CommunicationApplication.\n Application Interfaces Application interfaces handle call-backs to incoming events via their methods, like onVehicleUpdated(), called by the application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the \u0026ldquo;Provides\u0026rdquo; column. The elementary interface (Application) provides the methods onStartup(), onShutdown(). Implementation details are given in Development of applications.\n   Interface Applicable to Provides Description     Application / AbstractApplication all onStartup, onShutdown Elementary application class providing an operating system   ConfigurableApplication all  Basic application class providing an operating system and a configuration, which automatically loaded from a JSON file.   CommunicationApplication all onMessageReceived, onAcknowledgementReceived, onCamBuilding, onMessageTransmitted All applications that implement some form of V2X communication are to implement this interface.   VehicleApplication vehicle onVehicleUpdated General vehicle funtionality   ElectricVehicleApplication vehicle onBatteryStateUpdated, onChargingRequestRejected Electric vehicle functionality   TrafficSignAwareApplication vehicle onTrafficSignInvalidated, onTrafficSignNoticed Used by vehicles which are aware of traffic signs.   TrafficLightApplication traffic light onTrafficLightGroupUpdated Traffic light functionality   TrafficManagementCenterApplication TMC onInductionLoopUpdated, onLaneAreaDetectorUpdated Traffic management functionality   MosaicApplication all onSumoTraciResponded, onInteractionReceived Features that involve customized RTI-interactions of MOSAIC    Note: A roadside unit (RSU) is the most unit and usually communicates only. Thus, an RSU application implements CommunicationApplication.\n Configuration The Application simulator is configured in the file \u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ \u0026quot;messageCacheTime\u0026quot;: \u0026quot;30s\u0026quot;, \u0026quot;minimalPayloadLength\u0026quot;: 200, \u0026quot;encodePayloads\u0026quot;: true, \u0026quot;navigationConfiguration\u0026quot; : { \u0026quot;type\u0026quot;: \u0026quot;database\u0026quot; } }  Furthermore, depending on the deployed applications, the applications itself may offer configuration options in custom configuration files (e.g. ETSIApplication.json or ETSIApplication_veh_0.json).\n Eclipse MOSAIC Mapping Closely related to the Application Simulator, the Mapping Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:\n number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator) specific application(s) to be \u0026ldquo;mapped\u0026rdquo; on the simulation units and simulated in the Application Simulation  The JSON based configuration is located in \u0026lt;scenario_name\u0026gt;/mapping/mapping_config.json.\nConfiguration The Mapping configuration is divided into different parts:\n Pre Definitions of prototypes and deviations Entity Definitions of vehicles, rsus, tls servers and tmcs Advanced Vehicle Definitions (including route generation) in matrixMappers Common Definitions in config  Prototypes prototypes define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CamVehicle\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;length\u0026quot;: 5.00, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp\u0026quot; ] } ]  Prototypes can be created for all types of entities. Next to the list of applications which is available for all types of entities, vehicle types provide various other parameters to be adjusted.\n   Parameter Description Deviation     vehicleClass The class of the vehicle, e.g. Car, ElectricVehicle, EmergencyVehicle, Bicycle, HeavyGoodsVehicle, and more.    accel The maximum acceleration of the vehicle in $m/s^2$. Yes   decel The maximum deceleration of the vehicle in $m/s^2$, e.g. when stopping for traffic lights. Yes   emergencyDecel The maximum deceleration of the vehicle in $m/s^2$, in order to avoid accidents.    length The length of the vehicle in $m$. Yes   maxSpeed The maximum speed of the vehicle in $m/s$. Yes   minGap The minimum gap towards the leader in $m$, i.e. the space in front in a traffic jam. Yes   sigma The driver\u0026rsquo;s imperfection $[0,1]$.    tau The reaction time (or time headway) of the vehicle in $s$. Yes   speedFactor This factor is used to determine the speed limit to comply on roads, e.g. 1.1 would exceed the speed limit by 10%. Yes   laneChangeMode The lane changing behavior of the vehicle: COOPERATIVE. CAUTIOUS, AGGRESSIVE, PASSIVE, OFF    applications The list of applications to map onto this vehicle type.     For the majority of the parameters above (see column \u0026ldquo;Deviation\u0026rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate deviations attribute must be added to the type:\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;length\u0026quot;: 5.0, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;deviations\u0026quot;: { \u0026quot;length\u0026quot;: 1.2, \u0026quot;maxSpeed\u0026quot;: 5.0 } } ]  According to the config above, the basic parameter value conforms to the expected value, and the given value in the deviations attribute conforms to the $\\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\\sigma$.\nEntities Vehicles\nThe vehicles-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.\nEach spawner in this list generates a traffic stream of vehicles on a certain route. The vehicles stream begins at startingTime and generates vehicles until maxNumberVehicles is reached. The time between two consecutively vehicles is implicitly given by the targetFlow property, which defines how many vehicles per hour are going to be spawned.\nEach vehicle spawner must refer to at least one vehicle type (types). A vehicle type must either refer to a type from the prototypes section by using its name, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the types attribute, weights can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, individual vehicle types are assumed to be distributed equally.\n Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.\n \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;NormalVehicle\u0026quot;, // this vehicle has no applications \u0026quot;applications\u0026quot;: [ ], \u0026quot;weight\u0026quot;: 0.2 } ] } ]  Additional notes:\n The route refers to a route usually defined in the scenario database file (*.db) of the scenario. In order to define only one single vehicle to be spawned, the maxNumberVehicles property can be set to 1. By defining the endingTime property, the flow is stopped from being generated when the given simulation time is reached. By defining the spawningMode to one of the following values, the departure time of the individual vehicles can be adjusted:  CONSTANT - default case, all vehicles have equal time distance to match target_flow. POISSON - vehicles depart within a Poisson distribution, resulting in a more natural traffic flow. GROW - the flow of departing vehicles increases linear up to target_flow. SHRINK - the flow of departing vehicles decreases linear starting at target_flow. GROW_AND_SHRINK - the flow of departing vehicles increases up to target_flow and decreases afterwards.   By defining the laneSelectionMode to one the following values, the selection of the departure lane can be adjusted:  DEFAULT - selects the lane for the next vehicle based on the list of given lanes in a roundrobin manner. ROUNDROBIN_HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to DEFAULT. HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to BEST. RANDOM - the vehicle will be placed randomly on one of the available lanes of the road. FREE - the vehicle will be placed on a free lane of the road. BEST - the vehicle will be placed on the best lane of the road, according to the current traffic situation and departure speed.    Road Side Units\nThe rsus-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (lat, lon coordinates). Referring to prototype definitions with simply specifying its name in the name property will automatically fill in relevant properties of the RSU.\n\u0026quot;rsus\u0026quot;: [ { \u0026quot;lat\u0026quot;: 52.65027, \u0026quot;lon\u0026quot;: 13.54500, \u0026quot;name\u0026quot;: \u0026quot;WeatherServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.barnim.WeatherServer\u0026quot; ] } ]  Traffic Lights\nIn the trafficLights-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The tlGroupId-property allows mapping of applications to the traffic light groups, referring them by Id.\nAlternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently, all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.\n\u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp\u0026quot; ] }, { \u0026quot;tlGroupId\u0026quot;: \u0026quot;252864802\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp\u0026quot; ] } ]  For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to Simulation Scenarios - Traffic Lights.\nServers\nThe servers-array can be used to specify server units, which can be used to communicate with other units via the cell module. Capacity configurations for servers should be done when enabling the CellModule. Delay and transmission models are configured in the network.json of the cell module (see here).\n Note: The group parameter in the mapping configuration has to match with the id in the network configuration in order to properly function.\n \u0026quot;servers\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;MyServer\u0026quot;, \u0026quot;group\u0026quot;: \u0026quot;TestServers\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;ServerApp1\u0026quot;, \u0026quot;ServerApp2\u0026quot; ] } ]  Traffic Management Centers\nThe tmc-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits). Additionally, TMCs are an extension of Servers and can be configured in the same way that servers are\n\u0026quot;tmcs\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;HighwayManagement\u0026quot;, \u0026quot;group\u0026quot;: \u0026quot;TestTmcServers\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ \u0026quot;detector_0\u0026quot;, \u0026quot;detector_1\u0026quot;, \u0026quot;detector_2\u0026quot; ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ]   All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.\n Use Type Distributions in Complex Traffic Scenarios In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them again and again, you can use typeDistributions. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.\nInstead of defining an equal list of types and weights for each single vehicle spawner, like in this example:\n\u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] } ]  \u0026hellip; you can use typeDistributions to define the distribution of types for each vehicle once and reuse them:\n\u0026quot;typeDistributions\u0026quot;: { \u0026quot;exampleTypeDist\u0026quot; : [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; } ]  Advanced vehicle spawners with route generation It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the matrixMappers-list. Each MatrixMapper consists of a list of points, the vehicle-types to be used and the actual flow-values (odValues) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.\nThe MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.\n\u0026quot;matrixMappers\u0026quot;: [ { \u0026quot;points\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CityA\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 52, \u0026quot;longitude\u0026quot;: 13 }, \u0026quot;radius\u0026quot;: 1000 } }, { \u0026quot;name\u0026quot;: \u0026quot;CityB\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 48, \u0026quot;longitude\u0026quot;: 10 }, \u0026quot;radius\u0026quot;: 1000 } } ], \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot; } ], \u0026quot;odValues\u0026quot;: [ [0, 100], //100 vehicles from CityA to CityB [200, 0] //200 vehicles from CityB to CityA ] } ]  Common Configuration Next to the specific configuration of prototypes and simulation entities, some general parameters can be adjusted:\n{ \u0026quot;config\u0026quot;: { \u0026quot;scaleTraffic\u0026quot; : 1.0, \u0026quot;start\u0026quot;: 0, \u0026quot;end\u0026quot;: 500, \u0026quot;adjustStartingTimes\u0026quot;: false, \u0026quot;randomizeFlows\u0026quot;: false, \u0026quot;randomizeStartingTimes\u0026quot; : false, \u0026quot;randomizeWeights\u0026quot;: false } }     Parameter Description     scaleTraffic Scales the targetFlow of spawned vehicles per hour as well as the maxNumberVehicles by the given factor.   start Adjusts the point in time (in $s$) to start spawning vehicles. Any vehicle spawner with a lower startingTime will be ignored.   end Adjusts the point in time (in $s$) to end spawning vehicles. Any vehicle spawner with a greater startingTime will be ignored.   adjustStartingTimes If set to true, the starting time of each spawner is reduced by the value in start.   randomizeFlows If set to true, the departure time of vehicles within a vehicle spawner is slightly randomized.   randomizeStartingTimes If set to true, the starting time of each vehicle spawner is slightly randomized.   randomizeWeights If set to true, each weight greater than zero is slightly randomized.    Unit Identifiers Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.\n   Traffic Object Eclipse MOSAIC Internal ID     Vehicle veh_\u0026lt;seq_nr\u0026gt;   RSU rsu_\u0026lt;seq_nr\u0026gt;   TMC tmc_\u0026lt;seq_nr\u0026gt;   Traffic Light tl_\u0026lt;group_id\u0026gt;     seq_nr is the sequence number of simulated vehicles, RSUs, TMCs, each starting from zero. group_id is the group id of the traffic light.   ##Basic Applications\nEclipse MOSAIC is shipped with several example applications which can be loaded on the vehicles. Next to the applications shipped with the tutorial scenarios Barnim and Tiergarten, there are further example applications to be found on our website.\nAdditionally, we provide an ETSI conform application which implement specific CAM generation rules for vehicles (org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp), which is described in the following:\nETSI Application for vehicles This application generates ETSI data for its simulation unit (e.g. heading, position, speed and time for vehicles). According to its configuration, the application then sends out CAMs to other vehicles in range. Note that the messages are only send when the time lies between the configured minimum and maximum interval.\nCurrently, the default configuration (ETSIApplication.json) for the ETSI application looks like this:\n{ /* The maximum time offset (here 1 second) of sending CA-messages * (the offset will be different for every single vehicle to avoid interference) */ \u0026quot;maxStartOffset\u0026quot;: 1000000000, /* CAMs are sent at most every 1 second */ \u0026quot;minInterval\u0026quot;: 100000000, /* CAMs are sent at least every 1 second */ \u0026quot;maxInterval\u0026quot;: 1000000000, /* CAMs are sent when the position of the vehicle changes at least about 4 meters */ \u0026quot;positionChange\u0026quot;: 4, /* CAMs are sent when the heading of the vehicle changes at least about 4 degrees */ \u0026quot;headingChange\u0026quot;: 4, /* CAMs are sent when the velocity of the vehicle changes at least about 0.5 m/s */ \u0026quot;velocityChange\u0026quot;: 0.5 }  The CAMs sent out by this application consist of four parts:\n Header with generic information MessageBody TaggedValue list  First of all, generic information like protocol version and creation time stamp are transmitted. Normally this data set follows a network beacon, already containing data like position and speed. Nevertheless this functionality must be implemented in the network layer, i.e. in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body contains vehicle awareness data, including data like vehicle width, length, position, speed, type and heading. However, the specification is not completely implemented. Last but not least a message can contain optional data.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"bf25e52bde5c4e80a5aa654a38a7b644","permalink":"https://www.eclipse.org/mosaic/docs/simulators/application_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/application_simulator/","section":"docs","summary":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.","tags":null,"title":"Application Simulator","type":"docs"},{"authors":null,"categories":null,"content":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.\nHowever, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results, Eclipse MOSAIC offers different Visualizers. For example, the FileVisualizer generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"c60b5956ddd6a163875c0dc191dc8c6e","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/run_mosaic/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/run_mosaic/","section":"docs","summary":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.","tags":null,"title":"Run a simulation with Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"  The tool scenario-convert is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.\nIt will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation, route calculation\u0026hellip;).\nBased on a MOSAIC database, scenario-convert can export the data to SUMO-conform formats. Furthermore one can choose, whether to use routes generated by scenario-convert, use existing routes or build own routes via route generation tools (e.g. DUAROUTER by SUMO).\nThis chapter intends to highlight the most common workflows for the work with scenario-convert. We will be using this OSM-file for most of the use cases So feel free to follow along with the steps to get a better understanding on how the scenario-convert-script functions.\n Complete reference of the scenario-convert script.\n   OSM-File of Steglitz   Creating a complete Eclipse MOSAIC-scenario from an OSM-file with one command This is the most straight forward way to create a scenario from your OSM-file. We will use the option --osm2mosaic, which is a combination of the options --osm2db and --db2mosaic.\nLet\u0026rsquo;s start off by showing you how a complete call could look like:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Change mosaic.version to the current version you are using.\nIn this section we use the scenario name steglitz. as synonym for path/to/steglitz..\n  This achieves a couple of things. First off the script is going to create a SQLite-database, which is used by Eclipse MOSAIC. Furthermore, a directory will be created, which should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm ├─ application | └─ steglitz.db ├─ cell | ├─ cell_config.json | ├─ network.json | └─ regions.json ├─ environment | └─ environment_config.json ├─ mapping | └─ mapping_config.json ├─ ns3 | ├─ ns3_config.json | └─ ns3_federate_config.xml ├─ omnetpp | ├─ omnetpp_config.json | └─ omnetpp.ini ├─ output | └─ output_config.xml ├─ sns | └─ sns_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let\u0026rsquo;s walk through all these files:\n First the steglitz.db will be created using the steglitz.osm-file. The steglitz.db will be used to create steglitz.con.xml, steglitz.edg.xml and steglitz.nod.xml, which are files used by SUMO.  SUMO Netconvert is used to create steglitz.net.xml, which is a network representation in SUMO. Now the SUMO-configuration steglitz.sumo.cfg is written. Afterwards the mapping_config.json and scenario_config.json are created and all files are moved to the right place. In the scenario_config.json values like the center coordinate will automatically be set using data from the SUMO related files.  While this is technically sufficient to start working on your scenario there are a couple of other things you can do to achieve better results.\nClean the OSM-file using Osmosis\nOsmosis will automatically be used to create a new OSM-file with the suffix _cleaned. The created file will contain much less clutter and usually is better suited for simulation purposes. Check the images below to see the difference the clean-up process can make.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Uncleaned OSM-file     Cleaned OSM-file      Uncleaned Net-file     Cleaned Net-file     To avoid \u0026ldquo;cleaning\u0026rdquo; the OSM-file, please use the option \u0026ldquo;skip-osm-filter\u0026rdquo;.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter  Generating Routes\nThe scenario-convert also offers the option --generate-routes, which will generate a route-file, given some additional information. For example purposes we will run the following command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  This will calculate three routes between the two given coordinates.\nAlternatively you can use the following command in order to generate routes with node-id\u0026rsquo;s as start and end point, which can be found in the steglitz.nod.xml file.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-node-id 267350668 --route-end-node-id 313139970 --number-of-routes 3  see below for all command line options.\nExporting Traffic Lights\nAnother feature of the scenario-convert script is the ability to export traffic lights from the osm-file to be used by SUMOs netconvert. The extended call would look like this:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3 --export-traffic-lights  Conlusion\nThis wraps up one of the main workflows with the scenario-convert-script. A quick reminder on what we achieved:\n Cleaned up an OSM-file to only contain relevant data. Converted that OSM-file to formats that Eclipse MOSAIC/SUMO can handle. Created the project structure for a scenario. Calculated routes between two coordinates.  With all of this you can now start further developing your scenario. For a more detailed description on the next steps please have a look here (Simulation Scenarios) and here (Application Development).\nWhile this is the \u0026lsquo;happy world\u0026rsquo; workflow it is often necessary to manually adapt routes and insert them into your scenario. The following workflow will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.\nImporting Routes to your scenario As mentioned above your routes won\u0026rsquo;t always be created by the scenario-convert script. We generated some routes for the steglitz-scenario using SUMO\u0026rsquo;s duarouter, which you can find here. We\u0026rsquo;ll start with only the steglitz.osm and steglitz.rou.xml files:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz.rou.xml  Creating the database\nWe\u0026rsquo;ll start off by solely creating the database and applying OSMOSIS with the following command:\njava -jar scenario-convert.jar --osm2db -i steglitz.osm  The directory should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.db ├─ steglitz.osm ├─ steglitz.rou.xml └─ steglitz_cleaned.osm  Importing the route-file\n This is the interesting part of this workflow. 👍\n Let\u0026rsquo;s import our routes into the database.\nWe achieve this by calling:\njava -jar scenario-convert.jar --sumo2db -i steglitz.rou.xml -d .\\steglitz.db  Now all new routes are imported into our database. The following image shows a visualization of one of the created routes.\n Visualization of one of the routes   Creating the scenario\nThe final step is to create the scenario from the files we created so far.\njava -jar scenario-convert.jar --db2mosaic -d .\\steglitz.db  Instead of copying our SUMO-files this will generate all necessary files and move them into a Eclipse MOSAIC-conform folder structure:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json  As you can see the resulting folder structure looks just like the final output from the first workflow described.\nConclusion\nYou should now know how you can manually add routes to your scenario and have a deeper understanding of the way that some of the script parameters work.\nAttached Files A list of all attached files in this chapter:\n Steglitz OSM-file Steglitz Route-file  Reference documentation for scenario-convert Usage of scenario-convert The following listing shows an overview for the usage of scenario-convert:\n Usage: scenario-convert [OPERATION] -d \u0026lt;DATABASEFILE\u0026gt; [OPTIONS]* Examples (options in [] are optional): 1. Import an osm file and write data into database scenario-convert --osm2db -i \u0026lt;OSMFILE\u0026gt; [-o] [-d \u0026lt;DATABASE\u0026gt;] 2. Export db content to sumo-readable files scenario-convert --db2sumo -d \u0026lt;DATABASE\u0026gt; [-s \u0026lt;SUMOPREFIX\u0026gt;] [-n] 3. Reimport a sumo routefile into a database scenario-convert --sumo2db -d \u0026lt;DATABASE\u0026gt; -i \u0026lt;ROUTEFILE\u0026gt; 4. Combine steps 1 and 2 scenario-convert --osm2sumo -d \u0026lt;DATABASE\u0026gt; -i \u0026lt;OSMFILE\u0026gt; [-s \u0026lt;SUMOPREFIX\u0026gt;] 5. Export db content to Shapefile format scenario-convert --db2shp -d \u0026lt;DATABASE\u0026gt; 6. Import an srtm file and write elevation data to nodes of an existing database scenario-convert --srtm2db -i \u0026lt;SRTMFILE\u0026gt; -d \u0026lt;DATABASE\u0026gt; ------------------------------------------------------------------------------- CONFIGURATION FILE: -h,--help Prints this help screen. -c,--config-file \u0026lt;PATH\u0026gt; Optional, refers to a configuration file which contains all parameters in JSON format. --osm2db Converts a OpenStreetMap file to a new scenario database. --sumo2db Imports a SUMO Network/Routefile. Be aware that you may have to re-export an imported network. --srtm2db Imports an SRTM file and writes elevation data to nodes. --db2sumo Exports the network to SUMO node and edge files. --db2shp Exports the database into Shapefile format. --db2mosaic Creates directory structure for a MOSAIC scenario based on the database contents. --osm2sumo Combination of osm2db and db2sumo. --osm2mosaic Combination of osm2db and db2vsimrti. --update Updates the database to the current scheme. -d,--database \u0026lt;PATH\u0026gt; The path to the database. For import: File to import to. If not given, a new file is created. For export: File to load from. For update operations: file to update. -i,--input \u0026lt;PATH\u0026gt; Defines an input file to use in an import. File type depends on the import operation (OSM File/Database file/SUMO net file/SUMO route file). -s,--sumo-prefix \u0026lt;STRING\u0026gt; Prefix for the generated sumo files (uses database name when not defined). -f,--force Force overwrite of existing files instead of incrementing file names. -m,--mapping-file \u0026lt;PATH\u0026gt; Uses the given mapping configuration to export existing vehicleTypes and vehicles data to *.rou.xml (with --export-routes). --import-lat \u0026lt;DOUBLE\u0026gt; Center latitude of imported region to project coordinates. --import-lon \u0026lt;DOUBLE\u0026gt; Center longitude of imported region to project coordinates. --import-zone \u0026lt;STRING\u0026gt; UTM zone of location for projecting coords in default format (e.g. 32n). -g,--generate-routes Generates route(s) from one point to another. The begin and end for the route must be known (see below options). --route-begin-lat \u0026lt;DOUBLE\u0026gt; Latitude of the starting point, needs --route-begin-lon as well. --route-begin-lon \u0026lt;DOUBLE\u0026gt; Longitude of the starting point, needs --route-begin-lat as well. --route-begin-latlon \u0026lt;DOUBLE,DOUBLE\u0026gt; [latitude],[longitude] of the starting point. --route-begin-node-id \u0026lt;STRING\u0026gt; OSM node id of the starting point (use instead of lat/lon). --route-end-lat \u0026lt;DOUBLE\u0026gt; Latitude of the starting point, needs --route-end-lon as well. --route-end-lon \u0026lt;DOUBLE\u0026gt; Longitude of the starting point, needs --route-end-lat as well. --route-end-latlon \u0026lt;DOUBLE,DOUBLE\u0026gt; [latitude],[longitude] of the ending point. --route-end-node-id \u0026lt;STRING\u0026gt; OSM node id of the ending point (use instead of lat/lon). --route-matrix \u0026lt;STRING,STRING,...\u0026gt; Calculates all possible routes starting and ending at the given nodes, given as comma-separated list (e.g. 12345,87123,89123) --number-of-routes \u0026lt;INTEGER\u0026gt; Defines the number of alternative routes to be calculated (default=1). --skip-osm-filter Skips automatic filtering of the OSM file (only with osm2xxx). -b,--import-buildings Write OSM building information in database. --ignore-turn-restrictions Ignore all defined turn restrictions on OSM import. --disable-graph-cleanup Turns off the removal of unconnected parts from the main traffic network graph . Since several components of VSimRTI require one main graph without disconnected ways and nodes, this option should be used only if the cleanup procedure is faulty. --skip-netconvert Skips automatic starting sumo netconvert for creating netfile (only with xxx2sumo). --skip-traffic-lights-export Skips automatic exporting traffic light information for nodes (only with xxx2sumo). --osm-speeds-file \u0026lt;PATH\u0026gt; Define a property file which contains speed information which are used to set the speed for OSM ways without a max speed tag (only with osm2xxx). --osm-speeds-overwrite If set to true , the maxspeed tags of ways are ignored and replaced by either default values , or by speed information defined via the --osm-speeds-file option (only with osm2xxx). ------------------------------------------------------------------------------- File placement: When a database file is given with -d every created file will be placed by the database file in the given path. When the file is passed without a path the path used to execute the command from will be used as a base. For import operations where -d is omited all files will be placed alongside the input file given. When a file to be created already exist the filename will be postfixed with an incrementing number. This behaviour can be overwritten -------------------------------------------------------------------------------  Configuration-files for scenario-convert Scenario-convert offers a way to safe your conversion-parameters in a JSON configuration file using the option -c or --config-file.\nThe following listing shows how to save the options used in the example above:\n{ \u0026#34;operatingMode\u0026#34;: \u0026#34;osm2mosaic\u0026#34;, \u0026#34;inputFile\u0026#34;: \u0026#34;steglitz.osm\u0026#34;, \u0026#34;executeOsmosis\u0026#34;: true, \u0026#34;generateRoutes\u0026#34;: true, \u0026#34;routeBeginLatLon\u0026#34;: \u0026#34;52.457616,13.318392\u0026#34;, \u0026#34;routeEndLatLon\u0026#34;: \u0026#34;52.454774,13.333554\u0026#34;, \u0026#34;numberOfRoutes\u0026#34;: 3 }  Speed-files Below you can find a properties file which can be used during the import of OSM data in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the option --osm-speeds-file \u0026lt;FILE\u0026gt;. In the speed properties file, for each way type a speed value can be defined, according to the OSM highway key.\n# the unit the speed values are defined in [kmh, ms] speed.unit = kmh # the default speed for all way types which are not defined here speed.default = 30 # autobahn highway.motorway = 130 highway.motorway_link = 70 # bundesstrasse (germany) highway.trunk = 70 highway.trunk_link = 65 # linking bigger town highway.primary = 65 highway.primary_link = 60 # linking towns \u0026#43; villages highway.secondary = 60 highway.secondary_link = 50 #streets without middle line separation highway.tertiary = 50 highway.tertiary_link = 40 highway.residential = 30 #special roads highway.living_street = 5 highway.service = 20 # unclassified roads highway.unclassified = 30 highway.road = 20 # forest tracks highway.track 15  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"485ead0ca3596dfe810e10c66ea5a027","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_convert/","section":"docs","summary":"The tool scenario-convert is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.","tags":null,"title":"Scenario Convert","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;. For each simulation run a new folder is created.\n└─ log-\u0026lt;timestamp\u0026gt; ├─ apps | ├─ \u0026lt;unitType\u0026gt;_\u0026lt;unitId\u0026gt; ................. Detailed application specific logs for each unit | ├─ OperatingSystem.log ................. Detailed operating system logs for the unit | └─ ExampleApp.log ...................... Detailed application specific logs for each application. ├─ activities.csv ......................... Simulation details in comma separated value-format ├─ Application.log ....................... Information about the application ambassador ├─ Cell.log ............................... Cellular network log ├─ ChargingStation.log .................... ChargingStation ambassador log ├─ Communication.log ...................... (Ad hoc) network simulation ambassador log ├─ CommunicationDetails.log ............... Detailed output of network simulator (ns-3 or OMNeT++) ├─ Environment.log ........................ Logs of the environmental eventserver ├─ Mapping.log ............................ Mapping configuration logs ├─ MOSAIC.log ............................. General information, e.g. startup sequence information ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador ├─ Traffic.log ............................ Traffic simulation log (SUMO or others) └─ visualizer.csv ......................... Recorded data of the integrated File Output Generator  In addition to standard logging output for each federate there is a activities.csv file which contains detailed information about sent and received interactions. This file can be used to trace a simulation run for deep debugging. To enable this feature, the log level of the logger activities has to be set to INFO in the logback.xml (see section below).\nLogging The main configuration file for logging is \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. In this file, the log output can be configured in great detail. This file can be adjusted to your needs, e.g. you can set up a more detailed logging for communication components but set a less verbose output for Eclipse MOSAIC\u0026rsquo;s internal interactions or traffic simulation depending on your simulation focus.\nEclipse MOSAIC uses LOGback as logging framework. LOGback offers a lot of parameters to adapt the output to your needs. Please refer to this site for a detailed overview of all parameters you can use in the logback.xml file.\nPlease note that you can adjust the output to your needs by setting different log levels (ERROR, INFO, DEBUG etc.) for each component in the file at \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. This might also influence the simulation performance because of a possibly high amount of data to be logged.\nFederate specific logging Depending on the simulation purpose, further configuration possibilities for federate specific logging may be of interest.\nFor instance, OMNeT++ exhibits an elaborated logging concept. The omnetpp.ini in the scenario folder includes options to adjust the logging levels. The outputs of this federate are written to CommunicationDetails.log.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"2607b5551624e7e4887eac7256574426","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/results/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/results/","section":"docs","summary":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;.","tags":null,"title":"Simulation Results","type":"docs"},{"authors":null,"categories":null,"content":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator. It implements predefined interfaces of the Eclipse MOSAIC core library and is directly coupled with Eclipse MOSAIC. Second, your simulator needs to communicate with the Federate Ambassador. For this purpose, you either need to implement your own protocol to control the simulator, or use existing ones of your respective simulator (e.g. SUMO provides the TraCI byte buffer protocol).\n Implementing a Federate Ambassador In order to simplify federate development and to make the usage of the mechanisms provided by the RTI safer, an abstract class called AbstractFederateAmbassador is provided by the Eclipse MOSAIC core package. It implements the FederateAmbassador interface and handles incoming interactions as well as time advance grants according to the specified federate behaviour. When a federate implementation is making use of the AbstractFederateAmbassador as a super class, it has to provide two information to the superclass while constructing an instance of the class. These are:\n  isTimeConstrained: The general way this parameter can be understood, is that if it is set to true the federate is sensitive towards the time stamp order of interactions. The AbstractFederateAmbassador will then queue incoming interactions and request a time advance from the RTI in order to ensure that processing the received interaction is safe. At the time the requested time advance is granted, every queued interaction with a time stamp smaller or equal to the granted time will be delivered to the federate for processing. If set to false, incoming interactions will be forwarded immediately to the federate, thus resulting in a receive-order of interactions at the federate.\n  isTimeRegulating: Specifies whether the federate will publish time stamped interactions and thus can influence the time advances of other federates in the federation. If set to true, the AbstractFederateAmbassador will request time advances with respect to the specified lookahead value of the federate in order to avoid that time management schedules the execution of other federates while queued interactions are processed. If set to false, time advance requests that are issued due to incoming interactions will be flagged with an unlimited lookahead, allowing the RTI to schedule other federates while incoming interactions are processed.\n   Flowchart of Interaction handling   Further notes Coupling a multitude of different simulators and properly syncing them is a non-trivial task and requires a lot of effort in order to function correctly. If you have read up on High Level Architecture before (have a look here and at the linked references) you might notice, that the previous flowchart does not completely reflect the proposed mechanisms. For instance, the isTimeRegulating flag has no effect, when the isTimeConstrained flag is not set.\nSo at some points you might stumble upon federates, which have their isTimeConstrained and isTimeRegulating flags set to different values as you would expect. An example of this is the ApplicationAmbassador. One would expect it to be time-constrained as well as time-regulating. This isn\u0026rsquo;t the case though, because the ApplicationAmbassador implements its own time- and event-management, which would interfere with the internal mechanisms.\nWhen implementing your own federate, you can use the existing ones as reference.\nExample A federate that is timeConstrained and timeRegulated can handle a time stamped interaction only after receiving a corresponding time advance grant. For that reason, the AbstractFederateAmbassador caches the incoming interactions in a local queue and requests a time advance with the interactions time stamp. After getting a grant for that time stamp, it forwards the interaction via the processInteraction method call and afterwards invokes processTimeAdvanceGrant to allow the federate to proceed in its local simulation time. In the activity diagram in the following figure, the process of handling of incoming interactions with respect to the federate configuration is illustrated.\n Sequence diagram illustrating the flow of information.   Integration into Eclipse MOSAIC The first step to integrate a new component is the extension of the configuration file etc/defaults.xml. An example for a federate configuration can be found in following listing.\n\u0026quot;federates\u0026quot;: [ ... { \u0026quot;id\u0026quot;: \u0026quot;omnetpp\u0026quot;, \u0026quot;classname\u0026quot;: \u0026quot;org.eclipse.mosaic.fed.omnetpp.ambassador.OmnetppAmbassador\u0026quot;, \u0026quot;configuration\u0026quot;: \u0026quot;omnetpp_config.json\u0026quot;, \u0026quot;configurationDeployPath\u0026quot;: \u0026quot;omnetpp-federate/simulations\u0026quot;, \u0026quot;priority\u0026quot;: 50, \u0026quot;dockerImage\u0026quot;: \u0026quot;\u0026quot;, \u0026quot;host\u0026quot;: \u0026quot;local\u0026quot;, \u0026quot;port\u0026quot;: 4998, \u0026quot;deploy\u0026quot;: true, \u0026quot;start\u0026quot;: true, \u0026quot;subscriptions\u0026quot;: [ \u0026quot;VehicleRegistration\u0026quot;, \u0026quot;RsuRegistration\u0026quot;, \u0026quot;TrafficLightRegistration\u0026quot;, ... ], \u0026quot;javaClasspathEntries\u0026quot;: [] }, ... ]  The following parameters are available:\n  class - Attribute giving the full qualified name of the Java class which implements the Feder- ateAmbassador interface.\n  id - The id of the federate. This value should be as short as possible and will be also used for identifying the configuration folder within scenarios.\n  deploy - If set to true, the federate placed under bin/fed/ will be copied to the execution host (according to the host configuration file).\n  start - If set to true, the federate will be started by the federation management using the start command specified in the configuration file or this implementation.\n  subscriptions - A list of interaction names which the Federate Ambassador subscribes for. If any other ambassador sends out one of those interactions, this ambassador will receive them.\n   Interaction extension Another possibility to extend Eclipse MOSAIC is to add a new interaction to the set of predefined interactions. In the following figure, the abstract class Interaction, implemented interaction extensions, and a place holder for further extensions (rectangles with grey fonts and a dotted border) are illustrated. When the InteractionManagement forwards interactions among federates, it chooses the destination based on a interaction id and an optional condition. Furthermore, it synchronizes the interaction delivery based on their times. The abstract class Interaction offers these attributes but no further content. The exchanged content has to be implemented by extending the class Interaction. The already implemented extensions cover the content necessary to simulate common scenarios. However, for further scenarios further interactions might be required.\n Interaction classes and their relationships..   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"029b4f7b54e0aba61d23421e910663b7","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/simulator_coupling/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/simulator_coupling/","section":"docs","summary":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator.","tags":null,"title":"Simulator Coupling","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.0   Website  https://www.eclipse.org/sumo/   Supported version(s) 1.0.1, 1.1.0 (limited support), 1.2.0 - 1.7.0 (full support)        Installation Download Eclipse SUMO Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.\n In order to run SUMO with Eclipse MOSAIC you need to make the SUMO binaries available system wide by adding the SUMO binary folder to your PATH environment variable. Alternatively, the environment variable SUMO_HOME can be used to define the installation directory of SUMO.\n   We recommend to use the 64 bit version of SUMO if you want to simulate scenarios with a big traffic network.\n  Configuration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/sumo/sumo_config.json. If no such file exists, the following default configuration options are used:\n{ \u0026quot;updateInterval\u0026quot;: 1000, \u0026quot;sumoConfigurationFile\u0026quot;: \u0026quot;\u0026lt;scenarioName\u0026gt;.sumo.cfg\u0026quot;, \u0026quot;exitOnInsertionError\u0026quot;: true, \u0026quot;additionalSumoParameters\u0026quot;: \u0026quot;--time-to-teleport 0 --seed 100000\u0026quot;, \u0026quot;subscriptions\u0026quot;: [\u0026quot;roadposition\u0026quot;, \u0026quot;signals\u0026quot;, \u0026quot;emissions\u0026quot;] }  Next to sumo_config.json, the following configuration files are required for every SUMO simulation scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ sumo ├─ \u0026lt;scenarioName\u0026gt;.net.xml .............. SUMO Network file ├─ \u0026lt;scenarioName\u0026gt;.rou.xml .............. SUMO Route file ├─ \u0026lt;scenarioName\u0026gt;.sumocfg .............. SUMO configuration file └─ sumo_config.json .................... Ambassador configuraition file]  The SUMO configuration consists of sumo specific config files and the sumo-ambassador configuration file. The main configuration file name must end with the suffix *.cfg, which needs to refer to the network and route files. The network file is mandatory and should be generated with the scenario-convert tool provided with Eclipse MOSAIC.\nThe \u0026lt;scenarioName\u0026gt;.rou.xml is optional and is generated automatically for each simulation run. The routes for each vehicle are then usualy taken from the scenario database. However, those routes can be overriden by defining them manually in the route file.\n With Eclipse MOSAIC, the traffic definition (definition of vehicles, flows, vehicle types) is part of the Mapping configuration file. Any vehicles or flows defined within the \u0026lt;scenarioName\u0026gt;.rou.xml are ignored and won’t be simulated by SUMO.\n  Vehicle related parameters, such as acceleration, maximum speed, and the like, are configured via the Mapping configuration file. However, some SUMO specific parameters, like the car following model, needs to be configured separately in the route file. For example, if you have configured a vehicle type called MyVehicle in the Mapping configuration, you can set specific parameters for this type in the \u0026lt;scenarioName\u0026gt;.rou.xml as following:\n\u0026lt;routes\u0026gt; \u0026lt;vType id=\u0026quot;MyVehicle\u0026quot; carFollowModel=\u0026quot;IDM\u0026quot; lcKeepRight=\u0026quot;10\u0026quot;\u0026gt; \u0026lt;/routes\u0026gt;  Further information about SUMO and its configuration can be found in the official SUMO wiki.\nUsing the SUMO GUI with Eclipse MOSAIC It is also possible to use the graphical interface of SUMO in order to visualize and interact with the simulation. To achieve this, Eclipse MOSAIC can be configured to start the GUI process of SUMO as the federate rather than the command line interface. In order to use the SUMO GUI the file \u0026lt;mosaic\u0026gt;/etc/mosaic.xml needs to be edited. Here, the entry org.eclipse.mosaic.fed.sumo.ambassador.SumoAmbassador must be replaced with org.eclipse.mosaic.fed.sumo.ambassador.SumoGuiAmbassador.\n Keep in mind to launch Eclipse MOSAIC with the argument -w 0 in order to disable the watchdog timer. Otherwise it would shutdown Eclipse MOSAIC if the simulation is paused in the SUMO GUI.\n  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"86514c669b0224d14af4801daf24dc4c","permalink":"https://www.eclipse.org/mosaic/docs/simulators/traffic_simulator_sumo/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/traffic_simulator_sumo/","section":"docs","summary":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.","tags":null,"title":"Eclipse SUMO - Simulation of Urban MObility","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"5a65785fcf26ff856f02501a2dff644b","permalink":"https://www.eclipse.org/mosaic/group/dcaiti/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/dcaiti/","section":"group","summary":"The **Daimler Center for Automotive IT Innovations (DCAITI)** was founded in 2006 as a joint initiative of Daimler AG and the Technical University of Berlin. The DCAITI uses Eclipse MOSAIC since many years for various research projects in the field of automated and connected driving. Together with the TU Berlin students gain practical experience in software development by using and extending this simulation framework and models.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates. Note that we use the word \u0026ldquo;interaction\u0026rdquo; whenever we describe communication between federates, whereas we talk about a \u0026ldquo;message\u0026rdquo; primarily when concerned with V2X-communication.\nAll interactions are categorized by the package they are contained in, which corresponds to their main context/purpose. The \u0026ldquo;Sent by\u0026rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.\nmapping All interactions in this package are concerned with adding/registering simulation-units to the simulation. While most of the introductions are handled by the Mapping- or Application-ambassador, some of them are handled by the ambassadors for the traffic simulators (see LuST-scenario). In this case the interactions are used to initialize the scenario.\n   Interaction name Description Sent by     VehicleRegistration This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator. Mapping\nApplication   ChargingStationRegistration This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s. Mapping   RsuRegistration This interaction indicates the introduction of a roadside unit to the simulation. Mapping   TmcRegistration This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for. Mapping   ServerRegistration This interaction indicates the introduction of a server to the simulation. It holds a list of all applications. Mapping3   TrafficLightRegistration This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system. Mapping   TrafficSignRegistration This interaction indicates the introduction of a traffic sign. Mapping    mapping.advanced Interactions in this package are still concerned with the mapping of vehicles but differ from simple simulation unit registration.\n   Interaction name Description Sent by     ScenarioTrafficLightRegistration This interaction contains the phases and their duration of each traffic light in the simulation. This interaction shall be generated by the traffic simulators at start up (e.g. SUMO) Sumo\nPhabmacs   ScenarioVehicleRegistration This interaction is used to add vehicles to a simulation using a preconfigured scenario, which could be defined by using Sumo. Sumo(Scenario)   RoutelessVehicleRegistration This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the Application-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards. Mapping    communication This package contains interactions regarding the setup of communication-components in simulation units and interactions concerned with the transfer of V2X-messages.\n   Interaction name Description Sent by     AdHocCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s ad-hoc communication facilities. Application   CellularCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s cellular communication facilities. Application    Interactions related to V2X-message transfer.\n   Interaction name Description Sent by     V2xMessageAcknowledgement This interaction is used by a communication simulator to inform about success or failure of a packet transmission. Typically, the application simulator should subscribe to this interaction. Cell   V2xMessageReception This interaction is intended to be used to exchange information about a received V2X message. Omnet++\nns-3\nSimpleNetworkSimulator\ncell   V2xFullMessageReception This interaction carries the payload that represents an arbitrary V2XMessage that is supposed to be received by the receiver of this Eclipse MOSAIC Interaction. Omnet++\nns-3\nSimpleNetworkSimulator\nCell   V2xMessageRemoval This interaction is intended to be used to exchange information about V2X messages, that are to be deleted. Application   V2xMessageTransmission This interaction is sent in order to trigger the transportation of a V2XMessage over a wireless network to a given geographical destination area. Application    vehicle The interactions contained in this package are usually used to enable applications to forward vehicle-control to the used traffic simulators.\n   Interaction name Description Sent by     VehicleActuatorsChange This interaction is used to directly control the throttle/brake of an vehicle. At the moment this is only supported by Phabmacs. Application   VehicleDistanceSensorActivation This interaction is used to enable the distance sensors of a vehicle. A multitude of sensors can be enabled with one interaction given they use the same maximum lookahead distance. Application   VehicleFederateAssignment This interaction is intended to be used, when more than one traffic simulator is used in a simulation. It enables the passing of information on which vehicle are passed externally. At the moment this is used by the PhSCA-ambassador. PhaSCA   VehicleLaneChange This interaction initiates a lane change for the given vehicle, which should be consumed by the traffic simulators. Application   VehicleParametersChange This interaction requests to update various parameters of the vehicle or its driver. Application   VehicleResume This interaction requests the given vehicle to continue its journey after being stopped beforehand. The interaction should be handled by traffic simulators Application   VehicleRouteChange This interaction is used to change a route for vehicle by its id. It can be assumed that the given route id has been propagated by either a VehicleRoutesInitialization- or VehicleRouteRegistration-interaction. Application   VehicleRouteRegistration This interaction is used to propagate a newly generated route which is not yet known. It consists of the id of the route and a list of all its edges. Application   VehicleSightDistanceConfiguration This interaction is used to configure the sight distance for a vehicle (driver), this information can for example be used to implement applications regarding traffic sign recognition. Application   VehicleSlowDown This interaction initiates the vehicle to slow down in a given interval. The request should be handled by traffic simulators. The name \u0026lsquo;SlowDown\u0026rsquo; is inherited by Sumo and a little bit misleading, the speed can also be increased. Application   VehicleSpeedChange This interaction sets the current speed of the given vehicle. This should be handled by traffic simulators Application   VehicleStop This interaction requests the given vehicle to stop at the given road position, it should be handled by traffic simulators. Application    traffic Interactions in this package are focused around traffic management and communication with traffic simulators.\n   Interaction name Description Sent by     CellularHandoverUpdates This interaction is used by the cell ambassador to communicate handovers. cell   InductionLoopDetectorSubscription This interaction subscribes a unit to the data of an induction loop detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LaneAreaDetectorSubscription This interaction subscribes a unit to the data of a lane area detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LanePropertyChange This interaction contains lane properties to be changed. Concretely, it sets a list of allowed and disallowed vehicle classes per lane and a new maximum speed limit that shall be changed. The changed lane properties have to be omitted to the traffic simulator to be handled. Application   TrafficDetectorUpdates This extension of {@link Interaction} combines updates of lane area and induction loop detectors. Usually the updates are supplied by the traffic simulator and will be filtered by applications subscribed to them. Sumo   TrafficLightStateChange This interaction is intended to be used to forward a request to change the state of a simulated traffic light. This interaction can be used to implement different controlling strategies for traffic lights. Application   TrafficLightUpdate This interaction is a container for traffic light update. It is sent by the SumoAmbassador to inform simulation units about an updated traffic light state. Sumo   VehicleUpdates This interaction is used to update the position of some or all vehicles of the simulation. It consists of three lists, containing newly added vehicles, vehicles which were updated since the last simulation step, and vehicles which have been removed from the traffic simulation. Sumo\nPhabmacs   VehicleTypesInitialization This interaction is required for each simulation. It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier. Mapping   VehicleRoutesInitialization This interaction is required for each simulation. It contains all routes vehicles will take during the simulation. Other ambassadors may cache this interaction in order to have access on the routes, which are later identified by their identifier. Application    electricity All interactions contained in this package are related to electric vehicles and the surrounding infrastructure.\n   Interaction name Description Sent by     ChargingDenialResponse This interaction is sent out by the charging station ambassador to inform the application simulator (the vehicles) when a charging station is already in use. e.g. a vehicle wants to start charging on an engaged charging station -\u0026gt; ChargingStartDenial. ChargingStation   ChargingStartResponse This interaction is intended to be used to forward a started charging process at a ChargingSpot to the RTI. ChargingStation   ChargingStationUpdates This extension interaction is intended to be used to forward the updated state of a ChargingStation to the RTI. ChargingStation   ChargingStopResponse This interaction is intended to be used to forward a stopped charging process at a charging station to the RTI. ChargingStation   VehicleChargingStartRequest This interaction is intended to be used to forward a request from a vehicle to start charging its battery at a charging station to the RTI. Application   VehicleChargingStopRequest This interaction is intended to be used to forward a request from a vehicle to stop charging its battery at a charging station to the RTI. Application   VehicleElectricityUpdates This interaction is used to inform the applications of simulation units about changed electric information, send out by the battery ambassador. Battery    environment The interactions in this package are used for handling the communication about environment sensors.\n   Interaction name Description Sent by     EnvironmentSensorActivation This interaction is intended to be used to signal interest in sensor information for a specific simulation unit. Application   EnvironmentSensorUpdates This interaction is intended to be used to exchange sensor data. EventServer   GlobalEnvironmentUpdates This extension of interaction contains a list of current environment events and their locations. Those events can than be used to react upon a changing environment. EventServer    trafficsigns Interactions in this package are used to communicate changes in variable traffic signs, e.g. changing the speed limit.\n   Interaction name Description Sent by     AbstractTrafficSignChange This interaction can be sent to traffic sign ambassador in order to change a variable traffic sign. All interaction-classes, that are concerned with changing traffic signs extend this class. Application   TrafficSignLaneAssignmentChange This interaction can be sent to traffic sign ambassador in order to change a variable lane assignment sign. Application   TrafficSignSpeedLimitChange This interaction can be sent to traffic sign ambassador in order to change a variable speed sign. Application   VehicleSeenTrafficSingsUpdate This interaction stores a map of all traffic signs which are in sight distance of a specific vehicle and a map of all traffic signs which became invalid for that vehicle. TrafficSign    application Interactions in this package are used for applications. They are used to communicate custom information/data via the RTI.\n   Interaction name Description Sent by     ApplicationInteraction This interaction is intended to be used in custom applications, it can be extended for simulation units to react upon different influences and can be used for intercommunication between applications. Application   ItefLogging This interaction is used to exchange log-tuples for the ITEF (Integrated Testing and Evaluation Framework). Application   SumoTraciRequest This interaction is used to send a byte array message to SUMO TraCI. The request will be handled by TraCI and trigger a SumoTraciResponse. Application   SumoTraciResponse This interaction holds the TraCI response for a SumoTraciRequest. It is sent by the SumoAmbassador and will usually be handled by the Application that sent the request. Sumo    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"7f431be72ccf4101c02872c325977e3f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/interactions/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/interactions/","section":"docs","summary":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates.","tags":null,"title":"Interactions in Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter. For more detailed explanations of the configurations have a look at this chapter.\nIf you already played with the Barnim-tutorial you probably noticed, that it contains far more folders in the scenario structure compared to the Steglitz example. Those additional directories contain configurations for various simulators.\n└─ Barnim ├─ application ├─ cell ├─ environment ├─ mapping ├─ ns3 ├─ output ├─ sns ├─ sumo └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let the cars loose As a starting point we\u0026rsquo;ll look at the scenario that we created using this command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  We\u0026rsquo;ll end up with a folder looking like this:\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  If you have a look in the mapping_config.json, you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this file as a blueprint for your own scenario, have a look here to get more details on possible adaptions.\nBelow is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars follow.\n Communication Simulators (cell, ns3, omnetpp, sns) We won\u0026rsquo;t implement any functionality for the steglitz example here but rather have a look at the Barnim-tutorial. In the scenario_config.json of the Barnim scenario you can see where the communication simulators are activated:\n\u0026quot;federates\u0026quot;: { \u0026quot;cell\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;sns\u0026quot;: true }  Our tutorials and additional examples demonstrate use cases for communication usages and you should have a look at them if you are uncertain where to start. Furthermore we recommend copying the configuration-files for the simulator you are going to use from the Barnim scenario. It contains the most complete configurations and is well maintained.\nIf you are an expert with one of the external network simulators ( ns3, OMNeT++) the Barnim scenario will also give you an overview on how to configure those.\nOther Simulators Here we\u0026rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the Event Server and the Battery Simulator.\nEvent server The event server can be used to emit events to vehicles inside it\u0026rsquo;s predefined borders. In the Barnim scenario an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.\nEvery defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look at the eventserver_config.json to see how this can be configured. If you want to use the event server make sure to have it enabled in the scenario_config.json.\nBattery The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can dynamically load your own battery, vehicle and environment models. Have a look a the battery_config.json, taken from the Barnim scenario. The three models used are included with Eclipse MOSAIC and you can freely use them.\nOutput There are various options to generate output results of your simulations (see the visualization chapter). Visualizing doesn\u0026rsquo;t necessarily mean you will end up with moving pictures of cars driving along your predefined routes.\nLet\u0026rsquo;s get back to the steglitz-scenario and try to calculate the average travel time of our vehicles. The first step is to create a file called visualizer_config.xml in a new directory called visualizer. If you used the scenario-convert tool the file should be generated automatically.\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ output | └─ output_config.xml ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Next make sure the visualization federate is activated in the scenario_config.json.\n\u0026lt;!-- Visualization --\u0026gt; \u0026lt;federate id=\u0026quot;visualizer\u0026quot; active=\u0026quot;true\u0026quot;/\u0026gt;  Now we have to configure the statistics visualizer itself. This visualizer_config.xml contains the basic configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please refer to statistics visualizer.\nGo ahead and run the simulation one more time. Afterwards the log-directory should contain a file called AverageVehicleTravelTime.csv in a directory called StatisticsVisualizer:\ngroup;group-value;total; Car;186.369;336;  This tells us that there was a total amount of 336 vehicles of the type car in the simulation, which traveled for 186.369 seconds on average.\nConclusion\nAfter this small, hands-on introduction to visualizers you should know where to configure them and after some additional reading, you should be able to configure different types of visualizers for your use-cases.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"a4ca6c187ad91d08aae3125ab16bd8e7","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_configuration/","section":"docs","summary":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter.","tags":null,"title":"Additional Scenario Configuration","type":"docs"},{"authors":null,"categories":null,"content":"  This feature is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation. To this end, the is a tool to apply different configurations to a scenario, after which a series of simulations is executed via CLI by calling the start script.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e8beb745ee20688b28a1a708883ced00","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/simulation_set/","section":"docs","summary":"This feature is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation.","tags":null,"title":"Run a Simulation Set","type":"docs"},{"authors":null,"categories":null,"content":"  The Statistics Visualizer is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes. With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.\nConfiguration  The main configuration file for all visualizers is located at scenarios/\u0026lt;scenarioName\u0026gt;/visualizer/visualizer_config.xml  In order to use the Statistics Visualizer, the attribute enabled of the root element visualizer must be set to \u0026ldquo;true\u0026rdquo;, as shown in the following listing.\n\u0026lt;visualizer id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; [..] \u0026lt;/visualizer \u0026gt;  Configuration header for Statistics Visualizer\nSpecification In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For each type of retrieving data we create a \u0026lt;statistic\u0026gt;\u0026lt;/statistic\u0026gt; block. Inside the block we define one certain data type we want to retrieve in a  element. If you want to retrieve different data types, just create another \u0026lt;statistic\u0026gt; block for each of them.\nYou can also set the wanted file name in the attribute filename of the statistic element. If the attribute has not been given, each \u0026lt;statistic\u0026gt; block will get the name accordingly to the order number, for example 1. StatisticsVisualizer-Block.csv.\nIn the output attribute two options (short|verbose) can be selected. The short option provides us a compact log file with information about only the highest level of the retrieved data (e.g. aggregate values of grouped vehicles) in contrast to verbose option which also provides informations about every individual vehicle in each group.\nFor a successful start, the element source must be placed in the first position in the statistic children element list. Different options of possible data types, one of which must be specified in the source element can be seen below.\n\u0026lt;statistic filename=\u0026quot;ChooseItYourself\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;NameOfSource\u0026lt;/source\u0026gt; \u0026lt;/statistic\u0026gt;  Source options of Statistics Visualizer\nApplication This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for processing of the obtained data.\n source: Data to obtain, choose between:  VehicleSpeeds - Obtain the speeds of the vehicles of each simulation step. VehicleStops - The total number of stops during the journey of each vehicle. VehicleTravelTimes - The total travel time in s of the vehicles. VehicleDelayTimes - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s). VehicleTravelledDistances - The travelled distance inmof the vehicles. VehicleFuelConsumptions - The fuel consumptions of the vehicles in l per km. VehicleHeadways - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor. DetectorFlow - The flows of each subscripted induction loop.     For using the detector flow type, inductions loops need to be configured in the SUMO and mapping configuration files (e.g. Highway tutorial).\n   group-by: The vehicles will be grouped by its vehicle type name (VehicleType), group they belong to (VehicleGroup), or obtained data value (e.g. Interval:200 categorizes values into groups of size 200).\n  aggregation: Average | Harmonic aggregation of the obtained values. An attribute deviation can be set to true or false (it’s false if the attribute is not given). This attribute can be used for grouped values to get the deviation of each value from the aggregated group value or to get a standard deviation based on biased sample variance for groups (in the short output version).\n  filter: Filtering with the attribute filterType (possible values are keep and remove).\n Filtering by required value slots with two options to specify them: MoreThan:Value or LessThan:Value (e.g. MoreThan:5 to collect values which are bigger than 5 only) Filtering by vehicle type. VehicleType:Type (e.g. VehicleType:Car to collect values only of vehicles of type \u0026ldquo;Car\u0026rdquo;) Filtering by time. Time:From-To (e.g. Time:0-100 to collect values only of the first 100s of simulation time)    The following example will show an example of how you can specify the Statictics Visualizer according to your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim scenario) and then calculate the average vehicle travel time value for each of these groups.\n\u0026lt;visualizer id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; \u0026lt;statistic filename=\u0026quot;AverageVehicleTravelTimes\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;VehicleTravelTimes\u0026lt;/source\u0026gt; \u0026lt;group-by\u0026gt;VehicleGroup\u0026lt;/group-by\u0026gt; \u0026lt;aggregation\u0026gt;Average\u0026lt;/aggregation\u0026gt; \u0026lt;/statistic\u0026gt; \u0026lt;/visualizer\u0026gt;  Getting the Average time by vehicle class\nYou can also combine filters if you want to get a certain interval with upper and lower boundaries. With the following input instruction, only vehicles with the obtained data values between 250 and 500 will be left after filtering.\n\u0026lt;filter filterType=\u0026quot;keep\u0026quot;\u0026gt;LessThan:500\u0026lt;/filter\u0026gt; \u0026lt;filter filterType=\u0026quot;remove\u0026quot;\u0026gt;LessThan:250\u0026lt;/filter\u0026gt;  An example for filtering\nPlease notice that some sources are being not only obtained in each simulation step but also collected for further processing as separate values for each of these steps (like VehicleSpeeds, VehicleHeadways). These data types need to be aggregated to one value per vehicle if you want to group them by value or filter them.\nFor demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the average travel times of the vehicles and additionally groups them. As a result, the simulation produces the following CSV file in the log directory:\nGroup;Value;Total; AdHoc;399.14;24; Cellular;463.87;12; Unequipped;459.18;84;  The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"f3aea6e70248def0891ed9bd89706cbb","permalink":"https://www.eclipse.org/mosaic/docs/visualization/statistics/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/statistics/","section":"docs","summary":"The Statistics Visualizer is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.","tags":null,"title":"Statistics Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"00c72d014237189758fbbed269e91b7d","permalink":"https://www.eclipse.org/mosaic/group/openmobility/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/openmobility/","section":"group","summary":"The **openMobility Working Group** was founded to support the development and broad introduction of open source mobility modeling and simulation technologies. The aim of the Working Group is to deliver a openMobility framework of tools based on validated models, which are accepted as standard tools in industry applications and academia. Eclipse MOSAIC is one part of the broad range of tools developed in this group.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent. Subsequently, it will find all the Java Archive (JAR) files in the application configuration directory, belonging to the currently started scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is registered as a handle for different Eclipse MOSAIC messages in the configuration file etc/mosaic.xml in the Eclipse MOSAIC folder. After initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.\nNode Creation  Application Simulator basic flow / node creation classes   Application classes are only instantiated when a node, carrying that application, is created. This is signaled by messages for node creation like (AddedVehicle,AddedRsu,AddedTrafficLight, \u0026hellip;). When the Mapping ambassador spawns a new node, it will send those messages to the RTI. The message then contains the fully qualified names of all applications associated with the spawned node, as well as the vehicle type itself. Depending on this type, the Application Simulator creates a new SimulationUnit object (i.e. a subclass of SimulationUnit like Vehicle, RoadSideUnit or TrafficLight), representing the new node. This task is served by the UnitSimulatorclass, which performs book keeping of all SimulationUnits. Upon Creation of a node, the UnitSimulator will schedule an event to start all applications, belonging to the new node. The required information is saved in a StartApplications object, which also includes a ApplicationUnit object, an abstract representation of a node (a.k.a. unit) having at least one application.\nHowever, as, for example, SUMO does not simulate vehicles strictly from their creation on, but only since their first movement, Applications for vehicles cannot be started directly upon an AddedVehicle message. Instead, every added vehicle will be kept in the addedVehicles Map, until a VehicleMovements message, belonging to that vehicle is processed. The vehicle will then be added by the UnitSimulator like any other node.\nOther Messages and Time Advance Apart from the ones for node creation, there are many other messages (see Interactions), signaling events to the Application Simulator. For most of them, an event in the future will be programmed, such that the implied action is carried out at that simulation time. The processing of the events happens when the RTI calls the advanceTime() method on the ambassador. Upon this, Application Simulator will obtain a list of all events up to the new time and let the processor of the event process them. Every potential event processor implements the EventProcessor interface. The corresponding method is the advanceTime() method of ApplicationAmbassador, which calls scheduleEvents() on the event scheduler. Subsequently, some interesting messages and their handling process is sketched shortly:\n   Message Description     VehicleUpdates Signals that a vehicle has moved. The Vehicle object, which is a subclass of SimulationUnit, that corresponds to the moved vehicle will be updated to contain the new position. The new information is encapsulated in a VehicleInfo object, containing different vehicle data. To update the data, an event is scheduled at the given time and processed upon time advance. Vehicles not yet added to the simulation (see Node Creation), are added by calling addVehicleIfNotYetAdded().   MessageReceiption This message represents the reception of a V2X-message by a simulated node. The SimulationUnit with the id saved in the ReceivedV2XMessage object is scheduled for the processing of the message at the given simulation time. When simulation time reaches the reception time, the SimulationUnit will obtain the message from the message cache and hand it to all applications that implement the CommunicationApplication interface in the method SimulationUnit.processReceiveV2XMessage().   ApplicationInteraction While most other messages are specific to the a SimulationUnit, that then forwards the event to its applications, the ApplicationSpecificMessage is directly handed to all applications. Thereby, the SimulationUnit, whose applications shall receive the message can be specified. If this is not done, all applications of all units will get the message and have the opportunity to handle it.    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"ba98bef533abd0bfde76ff58f6af3458","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/application_ambassador_details/","section":"docs","summary":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent.","tags":null,"title":"Application Ambassador - Implementation Details","type":"docs"},{"authors":null,"categories":null,"content":"  The ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios. It is suited for field operational tests as well as simulations.\nITEF also offers a variety of visualization features, making a comparison of different vehicles or between equipped and unequipped vehicles easy. It is structured into 4 screens, whereas the following 3 screens are intended for the visualization.\nThe Replay screen (see Figure 1) is intended to be used for an initial overview of the test run. The main feature is the display of the vehicle movements on a map, while the player can be used to playback the movement situation. In this manner, the ITEF allows a location and time dependent evaluation of simulation test runs.\n ITEF Replay Screen   The Evaluate screen (see Figure 2) allows the detailed investigation of the correlations in a test run. The main feature of this screen is to display the behavior summarized over the whole run. The structure of this screen with is similar to the Replay screen. However, the focus here is on the detailed (statistical) summary of evaluated metrics.\n ITEF Evaluate Screen   Finally, the Statistics screen (see Figure 3) provides statistical evaluations of the test and simulation run. Currently, statistics on Vehicle Speed, Travel Time, Travel Distance and severalmore are supported.\n ITEF Statistics Screen   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"90c70d06303c99232632c33c319ffb8b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/itef/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/itef/","section":"docs","summary":"The ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios.","tags":null,"title":"Integrated Test and Evaluation Framework (ITEF)","type":"docs"},{"authors":null,"categories":null,"content":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication. For this kind of simulations, external model frameworks have to be included. Currently, there are two prominent model frameworks which cover whole model suites for according focus of wireless research. These are the Mobility Framework and the INET Framework. As INET provides all models necessary for simulating Vehicle-2-X communication, it is selected for the integration to Eclipse MOSAIC.\nFor more information on the INET extension you should look closer on the website.\n          Operating System GNU/Linux\n(Windows with mingw)    License GPL, free to use for academic use    Supported version(s) OMNeT++ 5.5 INET 4.1 http://www.omnetpp.org https://inet.omnetpp.org    Installation There are two installation types of the Eclipse MOSAIC OMNeT++ Federate:    Type Description     USER This installation type addresses those who only want to use the OMNeT++ network simulator for simulations.\nNetwork configurations can also be adjusted.\nIf you install the federate with this installation type, OMNeT++ 5.5 and INET 4.1 will automatically be installed inside \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp during the installation.   DEVELOPER The installation for developers addresses those who want to make changes or extend the Eclipse MOSAIC OMNeT++ Federate.\nThis installation type awaits that OMNeT++ 5.5 and INET 4.1 are already installed on your system and\n- PATH contains /path/to/omnetpp/bin\n- LD_LIBRARY_PATH contains /path/to/omnetpp/lib and /path/to/inet/src\n- C_INCLUDE_PATH contains /path/to/omnetpp/include and /path/to/inet/src     If you already have OMNeT++ 5.5 and INET 4.1 installed on your system, but you simply want to use OMNeT++ for simulations with Eclipse MOSAIC without developing further the Eclipse MOSAIC OMNeT++ Federate, you may also choose the installation for developers to avoid multiple installations of OMNeT++ and INET on your system.\n  First of all, please make sure that you have the following libraries installed: unzip, tar, bison, flex, gcc, python, protoc\n The installation of the current version of the OMNeT++ Federate was tested with protobuf version 3.7.0.\nIt is recommended to install this version. Here you receive more information about how to install protobuf.\n  Follow the links and download the source code of OMNeT++, INET and the Eclipse MOSAIC OMNeT++ Federate:    Software Version Link     OMNeT++ 5.5 https://omnetpp.org/download/   INET 4.1 https://github.com/inet-framework/inet/releases   Eclipse MOSAIC OMNeT++ Federate 20.0 Download    Available parameters of omnet_installer.sh:     Parameter Value Description     -t --installation-type \u0026lt;INSTALLATION_TYPE\u0026gt; Either USER or DEVELOPER.   -o --omnetpp \u0026lt;PATH_TO_OMNET_TGZ\u0026gt; Provide the archive containing the OMNeT++ source. You can obtain it from https://omnetpp.org/download/   -i --inet \u0026lt;PATH_TO_INET_TGZ\u0026gt; Provide the archive containing the inet source code. You can obtain it from https://inet.omnetpp.org/Download.html. If not given, the inet-source files are downloaded by this installation script.   -f --federate \u0026lt;PATH_TO_FEDERATE_ZIP\u0026gt; Provide the archive containing the OMNeT++-federate and patches for coupling OMNeT++ to Eclipse MOSAIC. If not given, the omnetpp-federate is downloaded by this installation script.   -so --skip-omnetpp - Skip the installation of OMNeT++   -si --skip-inet - Skip the installation of INET   -q --quiet - Less output and no interaction required   -j --parallel \u0026lt;NUMBER_OF_THREADS\u0026gt; Enables make to use the given number of compilation threads.\nPer default your systems maximum is selected automatically.   -u --uninstall - Uninstalls the OMNeT++ federate   -h --help - Shows this usage screen    Installation for Users Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type USER \\ --omnetpp /path/to/omnetpp-OMNETPP_VERSION-src.tgz \\ --inet /path/to/inet-INET_VERSION-src.tgz \\ --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip  For the installation type USER the parameters -o, -i and -f are required.\nThe installation script should terminate with SUCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\nInstallation for Developers Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type DEVELOPER \\ --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip  For the installation type DEVELOPER the parameter -f is required.\nThe installation script should terminate with SUCCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\n How to develop Eclipse MOSAIC OMNeT++ Federate\nOMNeT++ Federate Configuration To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open \u0026lt;scenarioName\u0026gt;/mosaic/mosaic_config.xml and enable OMNeT++:\n\u0026lt;federate id=\u0026quot;omnetpp\u0026quot; active=\u0026quot;true\u0026quot; /\u0026gt;  Now, when you run this scenario, Eclipse MOSAIC will automatically start the Eclipse MOSAIC OMNeT++ Federate.\nThe main configuration of the Eclipse MOSAIC OMNeT++ Federate is done within the configuration files omnetpp.ini and omnetpp_config.json in the scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ omnetpp ├─ omnetpp.ini ...................... OMNeT++ federate configuration file └─ omnetpp_config.json .............. Ambassador configuration file  The whole OMNeT++ specific configuration is done via the omnetpp.ini file. It covers static parts for the simulator coupling such as the specific Eclipse MOSAIC Event Scheduler and the ScenarioManager. Furthermore, logging configurations and the typical parameters for the communication layers (MAC, PHY and Radio Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure of the omnetpp.ini file.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"208d551c9e8045f1304b3efe6800d7dd","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_omnetpp/","section":"docs","summary":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication.","tags":null,"title":"Network Simulator OMNeT++","type":"docs"},{"authors":null,"categories":null,"content":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols. It simulates both unicast and multicast protocols and is used extensively in research on mobile ad-hoc networks.\nRegardless, ns-2 still remains in active use and will continue to be maintained in the near future. For Eclipse MOSAIC coupling, only ns-3 will be available.\nLike other network simulators, ns-3 has a relatively steep learning curve, especially compared to GUI- based simulators. If you have no prior experience with ns-3, we recommend to familiarize yourself with the ns-3 simulation environment and the ns-3 simulation basics first. The ns-3 documentation can be found under: https://www.nsnam.org/documentation\nTo take your first steps with ns-3, you might want to download 2 the latest version, build a copy of ns-3 (it uses the Python-based build-system waf) and take a look at the examples, that are shipped within most of the ns-3 source code repositories and packages. You might also examine the simulation output and try to adjust it.\nTypically, a ns-3 user will work under a Linux environment. For those running under Windows, there do exist environments which simulate the Linux environment to various degrees. The ns-3 project has in the past (but not presently) supported the Cygwin environment for these users (see http://www.cygwin.com for details on downloading). MiniGW is presently not officially supported, however there are also some people who managed to use it with ns-3. For detailed information of how to setup ns-3, please refer to their Wiki: https://www.nsnam.org/wiki/Installation\nFor more information on how to setup ns-3 with Eclipse MOSAIC, please just refer to the following section. We prepared an installation script, which manages most of the required work.\n As stated above, ns-3 is primarily developed on and for GNU/Linux platforms. Since Windows is such a widely used platform and Cygwin is not a perfect emulation of any Linux, we highly recommended for non-Linux users to consider the installation of a Linux virtual machine with a virtual machine environment, such as VMware or VirtualBox.\n      Software information     Developer(s) Tom Henderson, Mathieu Lacage, George Riley, Mitch Watrous, Gustavo Carneiro, Tommaso Pecorella and others   Written in C++ (core) and Python (bindings)   Operating system GNU/Linux FreeBSD Mac OS X   License Free software: GNU GPLv2   Website http://www.nsnam.org/   Supported version(s) 3.28   Dependencies libprotobuf 3.3.0    libxml2    libsqlite3   Deployed in MOSAIC all-in-one no (and need a patch to link)    ns3-ambassador folder structure └─ \u0026lt;scenario_name\u0026gt; └─ ns3 ├─ ns3_config.json ................. Ambassador configuration file ├─ configTechnologies.xml ...........ns-3 federate configuration file └─ confWifi.xml .....................ns-3 federate configuration file  Installation Eclipse MOSAIC offers support for the current stable release of ns-3 (3.28), that was released in March 2018. Older versions of ns-3 (prior to 3.28) are not supported. However, also for newer versions we cannot guarantee the correct operation. The coupling to Eclipse MOSAIC is designed in a manner of minimal code changes on the ns-3 simulator itself to keep the update capabilities for future versions.\nPrerequisites For GNU/Linux platforms, the minimal requirements to run basic simulations are a gcc or clang compiler and a Python interpreter. At least you need the following packages to be installed:\nMinimum requirement:\ngcc g++ python python-dev  For a complete list of required packages for different distributions, please refer to the ns-3 installation guide: https://www.nsnam.org/wiki/Installation\nPlease make sure the following libraries are installed before running the installation script:\n libxml2 libsqlite3 libprotobuf 3.3.0  Run the installation script  ns-3 requires several packages to be installed on your computer. You will need to ensure, that all required libraries are present on your system before proceeding. You may need superuser permissions to install packages.\n   If your local protobuf version does not fit the required one, the installation may fail with an error. In that case, you can run the install script with the -p flag. This will rebuild the protobuf files during installation and allow it to proceed correctly.\n  To ease the installation of ns-3 for Eclipse MOSAIC, the installation process has been delegated to an installation script, that can be found in the associated ns-3 federate folder.\nns3-ambassador federate folder structure:\n└─ mosaic/bin/fed/ns3 └─ ns3 ├─ Dockerfile.sh ....................Dockerfile for ns-3 federate └─ ns3_installer.sh ................ Installation script for ns-3  The ns-3 installation script accomplishes the following tasks:\n Download ns-3 tarball from the offical sources Download the ns-3 federate for Eclipse MOSAIC. Apply a patch to ns-3 in order to make it work with Eclipse MOSAIC. Add the ns-3 federate to the waf build system. Configure and build the patched ns-3 with the ns-3 federate.  In order to start the simulation, the following steps need to be performed:\n Set up the confWifi.xml-file in the scenario folder (see section Configuration). An example confWifi.xml - file is shipped with the Tiergarten scenario. For reasonable result logging, the logger-configuration in mosaic/etc/logback.xml has to be adapted to support the ns-3 ambassador and federate. At last ns-3 has to be activated in the mosaic_config.xml and the simulation can be started.  Installation in Docker environment  This is an experimental feature. Please refer to our mailing list if you experience any problems.\n  This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed ns-3 on your machine following the steps before, you can skip this section.\nDocker 5 is a new approach to execute software. More precisely, it \u0026ldquo;wraps software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, and system libraries\u0026rdquo;. As a result, the software is executed within a container and its execution does not rely on the environment the container is running in.\nIn context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not need to manually install ns-3 and can even run ns-3 on Windows hosts.\n Install Docker ≥ 1.13 on your machine. To get everything to work, please make sure to execute the following steps depending on your operating system:  Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab. Linux - Make sure your user account belongs to the unix-group docker. You may need to restart your machine.   Switch to the location of the Dockerfile in mosaic/bin/fed/ns3 Execute the following command on command line:\ndocker build -t ns3-federate:mosaic.\nThis could take a while to finish. Enter the name of the docker image etc/defaults.xml in the ns3-section into the tag dockerImage:  \u0026lt;federate class=\u0026quot;...\u0026quot;\u0026gt; \u0026lt;id\u0026gt;ns3\u0026lt;/id\u0026gt; ... \u0026lt;dockerImage\u0026gt;ns3-federate:mosaic\u0026lt;/dockerImage\u0026gt; ... \u0026lt;/federate \u0026gt;  You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the mosaic_config.xml.\nConfiguration The whole ns-3 specific configuration is done via the confWifi.xml and configTechnologies.xml files.\nconfWifi.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;wifi\u0026gt; \u0026lt;!-- IPv4 address generator --\u0026gt; \u0026lt;ipConfiguration\u0026gt; \u0026lt;ip address=\u0026quot;192.168.0.0\u0026quot; mask=\u0026quot;255.255.0.0\u0026quot;/\u0026gt; \u0026lt;/ipConfiguration\u0026gt; \u0026lt;!-- Calculate a propagation delay --\u0026gt; \u0026lt;propagationDelayModel\u0026gt; \u0026lt;delay model= \u0026quot;ns3::NonePropagationDelayModel\u0026quot;/\u0026gt; \u0026lt;/propagationDelayModel\u0026gt; \u0026lt;!-- Modelize the propagation loss through a transmission medium --\u0026gt; \u0026lt;propagationLossModel\u0026gt; \u0026lt;loss model= \u0026quot;ns3::FriisPropagationLossModel\u0026quot;/\u0026gt; \u0026lt;/propagationLossModel\u0026gt; \u0026lt;wifiConfiguration\u0026gt; \u0026lt;!-- Create non QoS-enabled MAC layers --\u0026gt; \u0026lt;wifiMac property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::AdhocWifiMac\u0026quot;/\u0026gt; \u0026lt;!-- Wifi PHY mode --\u0026gt; \u0026lt;wifiManager property=\u0026quot;phyMode\u0026quot; value=\u0026quot;OfdmRate54Mbps\u0026quot;/\u0026gt; \u0026lt;!-- Wifi manager --\u0026gt; \u0026lt;wifiManager property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::ConstantRateWifiManager\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;EnergyDetectionThreshold\u0026quot; value=\u0026quot;-81.0\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;CcaMode1Threshold\u0026quot; value=\u0026quot;-99.0\u0026quot;/\u0026gt; \u0026lt;!-- Transmission gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Reception gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Number of transmission power levels available between TxPowerStart and TxPowerEnd included --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerLevels\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;!-- Maximum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerEnd\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Minimum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerStart\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxNoiseFigure\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;ChannelNumber\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;/wifiConfiguration\u0026gt; \u0026lt;/wifi\u0026gt;  The IP configuration information includes the network address and network mask. The ns-3 propagation module defines two generic interfaces, namely PropagationLossModel and PropagationDelayModel, for the modelling of propagation loss respectively propagation delay.\nIn the default confWifi.xml, the Wi-Fi device uses the ns-3 standard propagation delay model ns3::ConstantSpeedPropagationDelayModel and the ns-3 standard propagation loss model ns3::FriisPropagationLossModel. Radio propagation models in ns-3 can easily be exchanged with the ns-3 class registration system (see the ns-3 documentation for details). The Wi-Fi configuration includes additional parameters, like sending power and antenna gain.\nconfigTechnologies.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;ns3Configuration\u0026gt; \u0026lt;installers\u0026gt; \u0026lt;installer type=\u0026quot;ns3::WifiVehicleInstaller\u0026quot; name=\u0026quot;WifiVehicle\u0026quot; file=\u0026quot;confWifi.xml\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;installer type=\u0026quot;ns3::MobilityModelInstaller\u0026quot; name=\u0026quot;Mobility\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;/installers\u0026gt; \u0026lt;/ns3Configuration\u0026gt;  The configuration manager of the ns-3 federate defines, which installer should be loaded for the Wi-Fi device (refering to the confWifi.xml) and the mobility model. Usually, you don’t need to take any changes and simply use the default configuration file, that ships with the ns-3 federate.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"10a4ba934e0981b530dd053b83c60773","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_ns3/","section":"docs","summary":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols.","tags":null,"title":"Network Simulator ns-3","type":"docs"},{"authors":null,"categories":null,"content":"  The 3D visualization RHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation. Next to the road network, which can be optionally rendered by the visualizer, the following units and events are visualized:\n Vehicle movements coming from the traffic simulation Road Side Units at their defined location V2X-messages sent via cellular communication (indicated as green circles) V2X-messages sent via ITS-G5 communication (indicated as blue circles) V2X-messages received by vehicles (indicated as red circles)   The 3D visualization tool PHABMap displaying events from the simulation   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"262992c33ea9dc690e168169b920406b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/phabmap/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/phabmap/","section":"docs","summary":"The 3D visualization RHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation.","tags":null,"title":"3D Visualization (PHABMap)","type":"docs"},{"authors":null,"categories":null,"content":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre. It is designed to handle large road networks faster than real-time. Each vehicle has an own route and is simulated individually. To simulate the movements of the vehicles on the network, a model is used that uses discrete time steps of e.g. 1 s. Thousands of vehicles can be simulated in real time on a desktop PC, including simulation of traffic lights, right-of-way rules, and lane changing models. Simulations can either run via the command line or are visualized using the openGL-API (SUMO-GUI). SUMO networks are created by importing other formats, such as OpenStreetMap data, Shapefiles or TIGE-maps; or by generating artificial networks. Furthermore, vehicle routes, based on different routing paradigms, can be computed.\nSUMO and Eclipse MOSAIC We have integrated the traffic simulator SUMO to be able to simulate heterogeneous driving vehicles and a set of vehicles that have a predefined routes based on an imported roadmap. Additionally, during the runtime of a simulation, it is possible that routes of simulated vehicles are changed and that vehicle positions are extracted at arbitrary points in time. The integration of SUMO into a Eclipse MOSAIC based simulation is illustrated in the following figure. The integrated Traffic Control Interface (TraCI) Server offers an interface to exchange commands and positions using a socket interface with a proprietary byte protocol. Analogous to the TraCI Server, a TraCI Client is implemented that is integrated in an ambassador implementing the TraCI protocol. Therefore, SUMO can be integrated without modifications.\n SUMO connected to Eclipse MOSAIC   During a simulation run, per default SUMO is paused and TraCI is listening for commands. After each advanced time grant, SUMO offers the new vehicle positions which are broadcast by its ambassador to other federates. Furthermore, if the ambassador receives a request to change the route of a specific vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.\nSimulation of Vehicles For each vehicle which has been defined in the mapping configuration, a VehicleRegistration interaction is sent to the SumoAmbassador which adds those vehicles to the simulation via TraCI. Furthermore, vehicle data is subscribed which is updated with every simulation step. After each step of the simulation this data is bundled into a VehicleInfo object which is distributed among other ambassadors within the VehicleUpdates interaction. The following data is available for each vehicle:\n Position Speed, Acceleration, Heading, Slope State of vehicle signals (e.g. turn indicators) Emission dispersion (CO2, NOX, etc.) Fuel consumption Information about the road the vehicle is driving on (road position) Id of the route  Traffic lights in SUMO Depending on which light is active (red, yellow or green), every traffic light got different phases. In theory, any combination of dis- or enabled lights is possible, but SUMO only handles combinations which make sense. In SUMOs traffic light concept every traffic light got a bitset of the status of each phase. Every bitset is a combination as mentioned above. When a car approaches a junction, it gets the actual bitset (combination) of the traffic light. To explain the code, an example is given:\n\u0026lt;tl-logic type=\u0026quot;static\u0026quot;\u0026gt; \u0026lt;key\u0026gt;0\u0026lt;/key\u0026gt; \u0026lt;subkey\u0026gt;my program\u0026lt;/subkey\u0026gt; \u0026lt;phaseno\u0026gt;8\u0026lt;/phaseno\u0026gt; \u0026lt;offset\u0026gt;0\u0026lt;/offset\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;GGggrrrrGGggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;yyggrrrryyggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrGGrrrrrrGGrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rryyrrrrrryyrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;rrrrGGggrrrrGGgg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrryyggrrrryygg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrrrrrGGrrrrrrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrrrryyrrrrrryy\u0026quot;/\u0026gt; \u0026lt;/tl-logic\u0026gt;  This example shows the traffic light program of one junction. It shows the different status’ of each light of each traffic signal, which are positioned on the junction. In this example every string of a phase e.g. \u0026ldquo;GGggrrrrGGggrrrr\u0026rdquo; (first phase) got 16 characters. Every char stands for one light on the junction. On this junction are four traffic lights with four signals each. To understand the different status of each light in one period (8 phases) the program should be read from top to the bottom. It is possible to change or create your own program by editing the .net file with the tool Netedit.\nHandling of traffic lights in Eclipse MOSAIC After the TraCI connection has been established, all available traffic light groups are read out of SUMO via TraCI. This information is packed into the three classes TrafficLightGroup, TrafficLightSignal, and TrafficLightPhase. While a traffic light group contains a list of signals which control one intersec- tion (which can consist of several nodes), a list of all existing traffic light groups is sent to the RTI via a ScenarioTrafficLightRegistration interaction.\nTraCI Client Implementation The SumoAmbassador communicates with the federate (SUMO process) via TraCI. In this socket based communication protocol, the server (SUMO) listens to commands and responds accordingly.\nEach message send to SUMO consist of a header and the command or result message, according to the following scheme:\n 0 7 8 15 +--------------------------------------+ | Message Length including this header | +--------------------------------------+ | (Message Length, continued) | +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_0 | Command / Result_0 content | | +--------------------------------------+ / ... +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_n -1 | Command / Result_n-1 content | | +--------------------------------------+ /  A more detailed description can be found here: http://sumo.dlr.de/wiki/TraCI/Protocol\nCommands Each TraCI command is identified by an command identifier. For example, the command 0xC4 is used to change the state of a vehicle. Most of the commands need further specification, such as the parameter of the vehicle which is required to be changed. Those parameters are usually accessed by variable identifiers (e.g. 0x40 addresses the speed of an entity). A full list of commands and variables supported by TraCI can be found here: http://sumo.dlr.de/wiki/TraCI\nHere is an example of a command message to change the speed of the vehicle \u0026ldquo;veh_0\u0026rdquo; to 14m/s:\n 0 7 8 15 23 24 31 +-----------------------------------------------------------------------------+ | 25 (Message length) | +-----------------------------------------------------------------------------+ | 21 (Length) | 0xC4 (Command) | 0x40 (Variable) | +-----------------------------------------------------------------------------+ 5 (String length as 4 Byte Integer) | \u0026quot;v\u0026quot; | +-----------------------------------------------------------------------------+ | \u0026quot;e\u0026quot; | \u0026quot;h\u0026quot; | \u0026quot;_\u0026quot; | \u0026quot;0\u0026quot; | +-----------------------------------------------------------------------------+ | 0x0B (Double type)| 40.0 (8 Byte Double) +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ | +-------------------+  AbstractTraciCommand In the TraCI client implementation of the SumoAmbassador the whole construction of messages is done in the class AbstractTraciCommand. The message header containing the message and command lengths is constructed automatically as well as all parameters defined by the specific command. To achieve this, each class which extends the AbstractTraciCommand needs to define the command, the variable and all parameters which are required for the specific command:\nprotected VehicleSetSpeed() { super(TraciVersion.LOWEST); write() .command(0xC4) // = change vehicle state .variable(0x04) // = set speed of entity .writeStringParam() // = vehicle id .writeDoubleParamWithType(); // = speed value }  This example shows the command implementation for setting the speed for a vehicle. In the constructor, the write methods provides a builder-like construct allowing to define the command, the variable, and all parameters which are later passed dynamically to the command. Here, the command is specified as 0xC4 (= change vehicle state) and the variable as 0x04 (= speed of the entity). Furthermore, two parameters are defined: The first string parameter represents the ID of the vehicle, the second double parameter defines the speed value to be set (according to http://sumo.dlr.de/wiki/TraCI/Change_Vehicle_State). Note, the order of the specified command contents is from crucial importance. E.g. the command must always be specified before the variable, and the variable before all parameters.\nAll parameters defined in the constructor (here: [String, Double] ), need to be assigned with values as soon as the command is executed. For this purpose, the command implementation needs to call the method execute of the super class with the parameter values in the specified order:\npublic void setSpeed(TraciConnection traciCon, String vehicleId, double speedValue) { super.execute(traciCon, vehicleId, value); }  Within the execute method, the AbstractTraciCommand constructs the whole message and sends it to the TraCI server (SUMO). Furthermore, the AbstractTraciCommand also reads the response, extracts the status of the response (successful or error) and reads all values returned by the server. Usually, commands which changes the state of an entity only (like VehicleSetSpeed) do not respond with complex results. However, a command which wants to retrieve a value of an entity needs to read out the result from the response (e.g. VehicleGetRouteId which returns the current route identifier of the vehicle). For this purpose, each command needs to specify how the response should be handled:\nprotected VehicleGetRouteId() { super(TraciVersion.LOWEST); write() .command(0xA4) // = retrieve vehicle state .variable(0x53) // = route id of entity .writeStringParam(); // = write vehicle id read() .skipBytes(2) // = skip command and variable in response .skipString() // = skip vehicle id, not relevant .readStringWithType(); // = read route id  This example shows the command implementation for getting the route id of a vehicle. As well as write, the method read returns a builder-like construct which provides methods to define how the response is handled. Here, the first two bytes of the response should be skipped, as well as the string which follows afterwards. The value the command is interested in is the following string value which holds the id of the route. By using the method readStringWithType the string is read out and is passed to the method constructResult which needs to be implemented by the command as well:\npublic String getRouteId(TraciConnection con, String vehicle) { return super.executeAndReturn(con, vehicle); } @Override protected String constructResult(Status status, Object... objects) { return (String) objects[0]; }  In this simple case the result of the command consists of one result object only (the route id). Therefore, it is just extracted from the array of result objects and directly returned.\nWriting parameters In order to write parameters and read results according to the specification of the protocol, several reader and writer implementations exist. For parameters to be written in the command various writers exists to write single bytes, strings, integers, and doubles, or special writers for writing lists. The same is for readers.\nIn the following example, the IntegerTraciWriter is shown:\npublic class IntegerTraciWriter extends AbstractTraciParameterWriter\u0026lt;Integer\u0026gt; { public IntegerTraciWriter() { super(4); } public IntegerTraciWriter(int value) { super(4, value); } @Override public int getVariableLength(Integer argument) { return getLength(); } @Override public void write(DataOutputStream out) throws IOException { out.writeInt(value); } @Override public void writeVariableArgument(DataOutputStream out, Integer argument) { out.writeInt(argument); } }  Each writer has two tasks. Firstly, it needs to determine the length of the parameter value. For example, an integer parameter is always 4 bytes long, whereas the length of a string parameter depends on the size of the argument. Therefore, each writer needs to be able to determine the variable length according to a given value. Secondly, it needs to write out the actual value into the DataOutputStream (which represents the channel to the TraCI server). Furthermore is each writer able to write fixed values, such as the command identifier which does not change, or variable arguments, such as the vehicle id.\nReading results In the following example, the IntegerTraciReader is shown:\npublic class IntegerTraciReader extends AbstractTraciResultReader\u0026lt;Integer\u0026gt; { public IntegerTraciReader() { super(null); } public IntegerTraciReader(Matcher\u0026lt;Integer\u0026gt; matcher) { super(matcher); } @Override protected Integer readFromStream(DataInputStream in) throws IOException { return readInt(in); } }  A reader has three tasks. Firstly, it reads out a value from the DataInputStream (which represents the response channel to the TraCI client) according to the protocol specification. For example, an integer can be read out directly, while a string requires several single reading operations. Secondly, the reader needs to take track of the number of bytes it has read in total. To achieve this it is recommended to use the provided methods of the super class, such as readInt, readString, or readByte .However, if values need to be read directly from the DataInputStream, the protected field numBytesRead must always be increased accordingly. Thirdly, the reader needs to define if the read out value fulfils certain requirements. Such requirement can be, that a certain value is expected. In this case, a matcher might be passed to the super constructor.\nAccessing the commands For each command, only one object should be instantiated during runtime. To achieve this, the CommandRegister is used. This class stores a command once it is created returns only one instance per command class:\nfinal RouteAdd routeAddCommand = commandRegister.getOrCreate(RouteAdd.class); //... do something  However, commands should not be accessed directly in the code, but rather using the various facades available:\n TraciRouteFacade - Route specific command calls, such as addRoute and getRouteEdges . TraciSimulationFacade - Provides methods to control the simulation, such as simulateStep . TraciTrafficLightFacade - Provides methods to get or set values for traffic lights. TraciVehicleFacade - Provides methods to get or set values for vehicles. All those facades can be accessed via the TraciClient.  Exception handling Exceptions are thrown and handled as following:\n  If a command results in a status response with the status code Error, a TraciCommandException is thrown. If this exception is thrown, the TraCI connection is still alive and can be used for further commands. The facades decide how to handle this exception then and may throw an InternalFederateException or log a warning message.\n  If a command could not be written properly, or the result could not be read out as wished, an InternalFederateException is thrown and an Emergency Exit is initiated, which eventually shuts down the TraCI connection. This also happens if a reader or writer throws any kind of Exception.\n  Version handling With future releases of SUMO new TraCI commands will emerge. To achieve downward compatibility each command can define the lowest TraCI Version it supports. For example, a command which was introduced with SUMO 0.30.0 and is annotated accordingly, would be skipped automatically if the version of the TraCI server is lower. However, this concept has not been tested yet properly.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"619eca86fee9768692c3090a256ba49b","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/sumo_ambassador_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/sumo_ambassador_details/","section":"docs","summary":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre.","tags":null,"title":"Sumo Ambassador Implementation","type":"docs"},{"authors":null,"categories":null,"content":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places. Those abstractions will be discussed later on.\nConfiguration The SNS offers some configurability regarding the way transmissions are simulated.\nMain Configuration:\n   Parameter Description type Default Value     maximumTtl Defines the upper bound for the amount of hops a message can make. (Note: messages can have individual ttl\u0026rsquo;s) int 10   singlehopRadius Fallback radius to be used for transmission, if no radius is defined in the AdhocConfiguration double 509.4   singlehopDelay A delay configuration for the direct communication between two nodes. ( See here) Delay `ConstantDelay |   singlehopTransmission This contains the transmission configurations for lossProbability and maxRetries. CTransmission n/a   adhocTransmissionModel A class extending AdhocTransmissionModel, this will decide the logic for transmissions. AdhocTransmissionModel SimpleAdhoc TransmissionModel     On default the SNS will use the SimpleAdhocTransmissionModel with a ConstantDelay using 0 as delay. This means it usually makes sense to specify the AdhocTransmissionModel explicitly and use a more realistic Delay. Example Configuration:\n { \u0026quot;maximumTtl\u0026quot;: 20, \u0026quot;singlehopRadius\u0026quot;: 300.5, \u0026quot;singlehopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;1.5 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.5 ms\u0026quot; }, \u0026quot;singlehopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 0 }, \u0026quot;adhocTransmissionModel\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleAdhocTransmissionModel\u0026quot;, \u0026quot;simpleMultihopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }, \u0026quot;simpleMultihopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } }  Transmission Logic SNS differentiates between two types of Ad hoc transmissions, geographically- and topologically-scoped transmissions, which generally are abbreviated with GeoCast and TopoCast respectively.\nGeoCasts are limited to BroadCasts. Accordingly, there is no explicit addressing of receivers (other than 255.255.255.255), instead a destination area is specified. However, GeoCasts allow for multihop forwarding.\nTopoCasts on the other hand use means of IPv4 addressing to transmit messages. Since the SNS was not build to simulate transmissions using complex topology-constructs, TopoCasts are limited to transmissions with a single hop. However, TopoCasts support BroadCasts and UniCasts (we are omitting Anycasts). Most transmissions in the Ad hoc domain will be some form of Broadcast, meaning every reachable entity is eligible to receive a message.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TopoCastGeoCastYesYesYesNoYesNoV2X-TransmissionTransmission TypeBroadcast\nor Unicast?Broadcast?Simulate TopoCast using\nsinglehop configuration.Simple transmission\nmodel?Simulate transmission using\nsimpleMultihopDelay.Sender directly able to reach\ndestination area?Flooding in destination areaGreedy Forwarding to reach area,\nthen flooding in destination areay.  This flowchart tells how different types of messages are handled internally.   TopoCasts The only way of directly addressing entities is a SingleHopUniCast (see figure below), the sender will try to address an entity in its transmission range.   SingleHopUniCast: The RSU is directly addressing the green vehicle.   The counterpart to that is a SingleHopBroadCast (see figure below), this form of transmission is commonly used for CAMs (Cooperative Awareness Messages) and other types of intermediate warning messages to all entities in transmission range.\n  SingleHopBroadCast: The RSU is addressing all units in transmission range.   GeoCasts As already explained, GeoCasts do not support direct addressing, so there is no form of UniCast. Instead of addressing entities, GeoCasts specify a destination area in which a message should be distributed. The SNS supports two ways to simulate GeoCasts. A simple but performant model (SimpleAdhocTransmissionModel) \u0026amp; a fairly realistic model ( SophisticatedAdhocTransmissionModel).\nThe simple model assumes a transmission to all entities in the specified area, whereas the delay will be calculated using the configured delay-type and the successful reception will be determined by the uniformly distributed lossProbability. The figure below depicts this behaviour   Simple GeoBroadCast: The RSU is sending to all entities in the destination area. All arrows (transmissions) will have a uniquely calculated delay or possible loss.   The realistic model accounts for possible transmission failures more accurately. The easiest case is that the sender itself is inside of the destination area1 and will start a Flooding Transmission within this area (see figure below).   GeoBroadCast using Flooding Transmission. Note: the area is not limited to circles.   In case the sending entity is outside of the destination area, a Forwarding Transmission has to be executed first. This is can also be described as an AnyCast, since the goal of this transmission is to reach any entity inside the destination area. We try to achieve this by building a \u0026ldquo;chain\u0026rdquo; of entities, that will forward the message to the destination are (see figure below).   Forwarding Transmission, by building a \u0026ldquo;chain\u0026rdquo; of vehicles.   The SNS however never uses Forwarding Transmissions individually, rather they are combined with a Flooding Transmission, which will simulate a way, that GeaCasts can be implemented in reality. The figure below depicts this behaviour.   Forwarding Transmission followed by a Flooding Transmission to realistically simulate GeoCasts.   Transmission Models As already mentioned in the previous abstracts, the SNS supports different transmission models for different use cases. Depending on the configuration of the SNS and the type of message send, different models will be used. The models are located in the package org.eclipse.mosaic.fed.sns.ambassador.model. This chapter aims to give a detailed inside in the workings of the models.\nSimpleAdhocTransmissionModel This is the most basic of all transmission models and will be your model of choice if you are not interested in completely accurate transmission results but care for performance. This model will approximate GeoCasts using the defined simpleMultihopDelay and simpleMultihopTransmission parameters. For TopoCasts the usual singlehopDelay will be used. This model only checks, whether a potential receiver is inside the destination area and has enabled Adhoc capabilities. If those conditions are met it will simulate the transmission by calculating an actual delay value and saving it into a transmission-result. Such a result holds information of the success of the transmission, the delay-value, the amount of hops, and the number of attempts. Though the amount of hops will always be 1 for this model.\nSophisticatedAdhocTransmissionModel This model offers are more realistic simulation of adhoc transmissions, using an implementation of a greedy-forwarding and flooding algorithm (see here (greedy forwarding) \u0026amp; here (flooding)). For TopoCasts this model behaves very similarly to the SimpleAdhocTransmissionModel, since TopoCasts are always configured with only one hop. For GeoCasts however, this model follows the flowchart above, trying to \u0026ldquo;approach\u0026rdquo; a destination area if it can\u0026rsquo;t be reached directly.\nApproaching (Greedy forwarding) Approaching can be imagined as building a \u0026ldquo;chain\u0026rdquo; of entities to reach an area. However, there is no guarantee, that even if such a chain exists, it will be found. The way that this chain is build follows the subsequent steps:\n Start from the sender and collect all reachable entities. Choose out of all reachable entities the one, that is closest to any node in the destination area. Use the chosen node and repeat the first step. Repeat until either a node inside the destination area is reached, or the TTL (time to live) is exceeded.  By always choosing the node with the shortest distance to the destination area, we omit a lot of possible solutions. Greedy Forwarding isn\u0026rsquo;t optimal, but offers a performant approach for this problem. \u0026ldquo;Face Routing\u0026rdquo;-algorithms will always find a path if one exists, however this hasn\u0026rsquo;t been implemented yet (feel free to contribute :). The figure below shows an example of those shortcomings, the message will be send using the green nodes and won\u0026rsquo;t receive the destination area, even though there is a possible \u0026ldquo;chain\u0026rdquo; using the yellow nodes.\n image/svg+xml       Layer 1 Destination Area Destination Area Destination Area Sender Sender Sender    This figure depicts a case were the Approaching Transmission wouldn\u0026rsquo;t reach the destination area, even though there is a possible way. (The dashed lines represent the communication range)   Flooding The implementation of Flooding is fairly equivalent as described on wikipedia. Each entity forwards the message to all entities in its communication range. Entities, that already received the message won\u0026rsquo;t receive it again; this is different from many real-life implementations, where messages are send to all reachable entities except the sender. However, since the simulation has total knowledge of all simulated entities, it is easier to overcome a lot of the disadvantages, that flooding faces in real world implementations.\nImplementing your own AdhocTransmissionModel If the implemented models don\u0026rsquo;t suffice your needs you can easily implement your own. Create a class extending AdhocTransmissionModel and implement the abstract methods for sending TopoCasts/GeoCasts. A possible extension could be to allow for multihop TopoCasts, building an actual topology and transmit your messages using that topology. Also, the aforementioned \u0026ldquo;Face-Routing\u0026rdquo; could be of interest. Additionally, the calculation of delays could be made more realistic.\nAccessing SNS-functionality from your applications In order for your scenario to enable the SNS follow the steps here. An overview of how to configure AdHoc-modules and usage of the API for Routing and Message-Building functions, can be found here.\n  Or is able to communicate with an entity inside the destination area. \u0026#x21a9;\u0026#xfe0e;\n   ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"848a0c0a1afd14ed7264603bb2725ecf","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_sns/","section":"docs","summary":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places.","tags":null,"title":"Simple Network Simulator (SNS)","type":"docs"},{"authors":null,"categories":null,"content":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them. That means at first the internals of one node are introduced which incorporate mainly the communication stack and a mobilitymodel. Afterwards, especially the scenario management is presented which builds up on the individual nodes and controls themajor part of the simulation. These both aspects are in similar way needed formost mobile communication simulation with OMNeT++ even in an isolated setup. However, specifically for interaction and synchronization with the other simulators in the Eclipse MOSAIC environment, a third pillar is necessary. This scheduler module is very important for the system as it implements the time management and event scheduling according to Eclipse MOSAIC specific concepts.\nNode Internals The main part of the node model consists of the communication stack. The submodules for communication are adopted from the INETMANET framework. Hence, it is primarily important to define the connections between the individual modules. However, there are also modules which needed to be implemented for the dedicated purpose of the coupling within the Eclipse MOSAIC environment. Finally, all modules are linked together to a compound module using the NED language. The following figure depicts the node architecture. It needs to be said that the concept currently supports two different kinds of nodes for Vehicles and RSUs, while V2X-based traffic lights are treated as RSUs. For the first approach these two kinds of nodes have the equal construction in terms of modules. The difference at the moment is that they can be configured with different values for parameters e.g. that Vehicles and RSUs have a different antenna height which is important for Two Ray Ground ReflectionModel. Furthermore, this concept is capable for later extensions e.g. for simulations when RSUs should be equipped with an additional network interface to build the bridge fromAd hoc Domain to the Fixed Infrastructure Domain (i.e. Internet).\n Architecture of one Node   Communication Stack The right part of the block diagram in the figure above depicts the communication stack. It is based on the module Wlan which is a compound module itself and covers the complete IEEE 802.11 network interface card with the MAC and PHY Layer and the Radio Channel. The configuration of different values for standard parameters e.g. the PHY bit rate or size of the contention window of the MAC can be exchanged within the omnetpp.ini-file (which introduces the parameters of the according module ned-files). Please note that the configuration allows different values for each kind of nodes and hence it is possible to configure another propagation model or carrier frequency for Vehicles compared to RSUs. Even if the possibility for such a configuration exists, it should be avoided and common parameters should consistently be configured twice with the same value.\nThe next module in the communication stack is the NetworkLayer. Once again it is a compound module and already a collection of most important protocols. The following protocols from version IPv4 are supported in this layer.\n IP (Internet Protocol) of course as primary protocol of the Network Layer ICMP (Internet ControlMessage Protocol) for information and error messages IGMP (Internet GroupManagement Protocol) for management ofmulticast functionality ARP (Address Resolution Protocol) for mapping of IP Addresses toMAC Addresses  Furthermore, the standalone modules InterfaceTable and RoutingTable are related to the Network Layer. The first one is needed to support multiple Network Interface Cards e.g. for wireless and fixed LAN in one node. It is already included for possible further extensions as previously mentioned, but up to now it has only one entry which is the Network Interface Card for Wlan. The second one is a table for simple Routing. This module is needed for correct instantiation of a node via the FlatNetworkGenerator as explained later in this section.\nThe TransportLayer of the communication stack is made up of TCP for reliable connections and UDP.\nThe modules VSimRTIReliableApp and VSimRTIUnreliableApp of Application Layer are the entry points for application messages for the communication stack for the following reasons. The communication oriented models of INETMANET have their focus more on the framing for communication and less on the real content. That means that content is often modeled with dummy payloads where only the length is of interest. In contrast, V2X applications which are simulated in the Eclipse MOSAIC Application Simulator. Rely on the correct transmission of contents. Hence, the modules VSimRTIReliableApp and VSimRTIUnreliableApp are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager to send new messages to lower layers and forward messages themselves back to the ScenarioManager upon reception. The main tasks are generally acting as an application within the scope of OMNeT++ and encapsulating themessage contents to packets to prepare them for sending. While functionality of an UDP application is fully supported in VSimRTIUnreliableApp, the complete TCP application functionality is restricted in VSimRTIReliableApp. Note that up to now it is not entirely clarified if and how TCP should be supported in V2X use cases for safety and traffic efficiency with their broadcast characteristics, think of different roles of server and client in TCP. When the Eclipse MOSAIC ScenarioManager properties are detailed later in this section, it is also explained how the connection between the Eclipse MOSAIC ScenarioManager and the Eclipse MOSAIC Apps is realized. This connection needs to be established dynamically and is therefore not assigned with a connecting arrow like the fixed connections between the modules of communication stack.\nMobility Model The second important component of the node is the mobility module VSimRTIMobility, which extends the BasicMobility. Unlike other mobility models as RandomWaypoint it does not generate node movements itself and has a straight static character. Node position updates are always triggered by the Eclipse MOSAIC ScenarioManager. Hence,mobility is completely controlled by Eclipse MOSAIC and in turn by the coupled traffic simulator. After successful position update the VSimRTIMobility module informs other modules about this event via the NotificationBoard.\nAdditional Functionality At last, the module NotificationBoard is defined for each node. This module was already mentioned in the model overview of INETMANET. It enables a very efficient way for dynamic communication between the individual modules. There is no direct and static connection needed between the modules, because modules can subscribe dynamically for notification about dedicated events.\nSimulation Setup The setup of the complete simulation is illustrated in the following Figure 3 From the view of OMNeT++, the simulation is a network which has a dynamic topology and is referenced as the simulated network in the omnetpp.ini-file for configuration. The ini-file gives access to all parameters which are offered to be configured by the included simple modules. The parameters are referred to by their hierarchical names with the simulated network as root module. As it is possible to assign already default values for parameters in the modules NED file, not every parameter needs to be configured in the ini-file. The simulation consists of basically three parts.\n Architecture of the whole Simulation Scenario   Simulated Nodes Obviously the major part of the simulation is dedicated to the nodes. They are compound modules either from type Vehicle or RSU and have the properties as described in the previous section. The number of nodes in the simulation can vary over simulation time and is dynamically managed by the Eclipse MOSAIC ScenarioManager.\nCommon Communication Dependent Modules The second part covers the modules which actually count to the communication stack, but are common for all simulated nodes. These modules are the ChannelControl and the FlatNetworkGenerator. The ChannelControl keeps track of all nodes, their positions and Radio Channels. The main task is to determine which nodes are in communication range and which other nodes are within interference distance. The FlatNetworkGenerator is part of the Network Layer. It is used to instantiate a network with a flat topology and assigns the IP addresses to all nodes. Additionally it runs Dijstra’s shortest path algorithm to discover the routes and adds them into the routing tables. It is assumed that the routing tables are of kind of the RoutingTable from the specific NetworkLayer package. This is the reason why every node is equipped with the RoutingTable submodule. This approach works out for the current simulation purposes, but when any Ad hoc Routing protocols will be introduced to the simulation model the FlatNetworkGenerator and the RoutingTable modules are likely be obsolete and would have to be replaced.\nEclipse MOSAIC ScenarioManager The ScenarioManager is an experimental feature that implements a central control instance in simulations with INETMANET framework. It is loaded with a script in XML notation and is used to setup and control simulation experiments. Actually the original ScenarioManager and the new Eclipse MOSAIC ScenarioManager have nearly nothing in common but the fact that both are used as a central management instance to enhance simple configurations to simulate more sophisticated scenarios. The general tasks of the Eclipse MOSAIC ScenarioManager contain the simulation start up with instantiation of common modules as ChannelControl and initialization of the Eclipse MOSAIC EventScheduler (detailed later) and the controlled simulation shut down. But most important beside these are the management of node mobility and management of V2X communication which are triggered by Eclipse MOSAIC during simulation.\nThe Mobility Management is responsible for administration of simulated nodes and their mobility. This includes introducing nodes to simulation, updating node positions and removing nodes from simulation.\nThe node introduction method is triggered by Eclipse MOSAIC with the commands ADD_NODES or ADD_RSU_NODES respectively. It adds the node according to its node id to the managed modules and creates the complete compound module. Important for later message handling is the setup of connections to the dedicated Eclipse MOSAIC App, which is done via so called gates. At the moment, the Eclipse MOSAIC Apps are statically initialized, but the concept is suitable to be extended later when other transport protocols and in turn applications have to be simulated.\nUpon MOVE_NODE command, which contains the affected node id and new position to be updated, the node is moved via the VSimRTIMobility module.\nAt last the REMOVE_NODE command indicates that a node leaves the simulation. On this event, the according node is deleted and unregistered from managed modules.\nThe CommunicationManagement controls the sending and receiving of V2X messages.\nThe SEND_V2X_MESSAGE command initiates the sending process. It contains the sender node id and the transport protocol. Thus the Eclipse MOSAIC ScenarioManager can select the according Eclipse MOSAIC app at the according node.\nWhen a message from another node successfully arrives at the application layer the Eclipse MOSAIC ScenarioManager is notified by the according node. Then, it sets up a RECV_V2X_MESSAGE which is sent back to Eclipse MOSAIC via the Eclipse MOSAIC EventScheduler. This intermediate step is introduced, since the Eclipse MOSAIC EventScheduler is the only instance, which is connected to Eclipse MOSAIC and which knows when it is safe to receive and send interactions.\nSimulator Coupling OMNeT++ is connected to Eclipse MOSAIC according to the concept of high-level-architecture (HLA). That means that the OMNeT++ simulation program itself is encapsulated in the OMNeT++ federate. To enable the coupling according to Eclipse MOSAIC concept, two components needed to be developed. First, the OMNeT++ federate is extended with the customized Eclipse MOSAIC EventScheduler, which can receive and send interactions forMobility and CommunicationManagement. The second component is the OMNeT++ Ambassador that can handle on the one hand the OMNeT++ specific connection and on the other hand the well-defined interface to Eclipse MOSAIC. The emphasis of both components lies in the synchronized exchange of interactions i.e. a time management mechanism must be jointly realized by them. For this purpose the conservative synchronization mechanism is implemented. The following figure gives an overview of the included compenents.\n Overview of Simulator Coupling   Eclipse MOSAIC EventScheduler The Eclipse MOSAIC EventScheduler extends the simple standard scheduler of OMNeT++ to be able to implement the time management for the Conservative Synchronization with Eclipse MOSAIC. It is the only module in OMNeT++ which has access to the event queue or Future Event Set (FES). Since the OMNeT++ simulation is an event driven simulation the scheduler has to fulfill two tasks. The first task is the actual scheduling part which is always invoked by the simulation kernel to schedule the next event. It allows all events from the FES to be processed up to the granted logical time $T$. If there are only events with a later time $T'$ than $T$ left in the FES, it sends the Next Event Request (NER) to the OMNeT++ Ambassador at Eclipse MOSAIC side and blocks the OMNeT++ simulation. Then the second task comes into operation. If necessary, it coordinates the Receive Interaction procedure and merges the external events from Eclipse MOSAIC and hence from other federates to the internal FES. Events with the same time stamp are ordered to the FES according to first come first serve mechanism. Note that the handling of these simultaneous events is generally important to ensure repeatable execution of simulations. The decision about ordering is in control of the federate itself, since the RTI does not sufficiently have the information to do this. After the Receive Interaction step, the RTI completes the time management cycle with the Time Advance Grant for $T'$. At this point the scheduler can set its logical time to $T = T'$ and unblock the further processing.\nAdditionally the Eclipse MOSAIC EventScheduler provides the service for other modules to send interactions back to the OMNeT++ Ambassador, since it is also the one module which is connected to Eclipse MOSAIC. Currently, this is used by the Eclipse MOSAIC ScenarioManager to report the RECEIVE_V2X_MESSAGES.\nEclipse MOSAIC OMNeT++ Federate Development This section provides a description how to set up the OMNeT++ IDE for the Eclipse MOSAIC OMNeT++ Federate Development.\nAt this point it is awaited, that the Eclipse MOSAIC OMNeT++ Federate is successfully installed.\nPrepare OMNeT++ IDE   Create an empty directory somewhere inside your home directory. We will call it \u0026lt;omnetpp_workspace\u0026gt; from here on. This directory will be used as a workspace in your OMNeT++ IDE.\n  Open your OMNeT++ IDE by executing omnetpp in your terminal.\n  Select \u0026lt;omnetpp_workspace\u0026gt; as workspace and continue by clicking Launch.\n  Close the \u0026ldquo;Welcome\u0026rdquo; screen.\n  Since your workspace is empty, the OMNeT++ IDE will ask you if you want to install the INET framework and OMNeT++ programming examples.\n OMNeT++ IDE: Install INET   Decide by yourself if you want to do that:\n By clicking OK the INET framework is going to be installed into an inet folder in your \u0026lt;omnetpp_workspace\u0026gt; If you already have INET installed somewhere you can skip the installation and import your existing INET project:  Cancel the dialog. Choose File \u0026gt; Open Projects from File System... In the new window choose the directory of your existing INET installation as Import Source and click Finish      The project inet should now be visible in the Project Explorer of your OMNeT++ IDE.\n  Right-click on free space in the Project Explorer and choose New \u0026gt; OMNeT++ Project...\n OMNeT++ IDE: Create new OMNeT++ Project     In the new window:\n Name the new project federate Uncheck the box before Use default location, click Browse and select:\n\u0026lt;mosaic\u0026gt;/bin/fed/omnetpp/omnetpp_federate_src/src\n OMNeT++ IDE: Create new OMNeT++ Project    Click Next    On the following Initial Contents page select Empty Project and continue by clicking Finish\nYou should now find two projects in the Project Explorer of your OMNeT++ IDE: inet and federate\n  Right-click on the federate project and choose Properties\n Go to Project references and check the box before inet\n Choose project references       That\u0026rsquo;s it! None of the files should now be marked with an error symbol.\n Configure Rebuild Configuration Since the Eclipse MOSAIC OMNeT++ Federate is not a classic OMNeT++ project, it cannot be build regulary with the OMNeT++ IDE by just clicking on the Build button. However, to make the build process easy and intuitive we provide a simple build script and the following desciption how to configure the OMNeT++ IDE to enable building on a single click:\n In the OMNeT++ IDE select Run \u0026gt; External Tools \u0026gt; External Tools Configuration... Double-click in the left column on Program to create a new configuration. Call it rebuild federate In the Main tab:  Under Location choose Browse Workspace... and select federate/rebuild_federate.sh Still in the Main tab under Working Directory choose Browse Workspace... and select federate  OMNeT++ IDE Build Configuration      In the Build tab uncheck the box before Build before launch\n OMNeT++ IDE Build Configuration    Now you can Apply your changes and click on Run. Since you have built the project at least once, you can rebuild it again by clicking here:\n Run rebuild     The following video shows the above described steps:\n  Configure Debug Configuration To debug the Eclipse MOSAIC OMNeT++ Federate during simulation you need to create a Debug Configuration. The following instruction will tell you how to that:\n In your OMNeT++ IDE choose Run \u0026gt; Debug Configurations... In the new window double-click on OMNeT++ Simulation in the left column and name the new created debug configuration federate. In the Executable row check other and type /federate/federate In the Working dir row type /federate In the Ini file(s) row type debug.ini omnetpp.ini At the end of the page click on the More \u0026gt;\u0026gt; link. And make sure all fields in the Advanced area are empty. For Projects to build select Do not build automatically before launch Now Apply your changes and try your configuration by clicking Debug  The following images shows the final debug configuration:\n Final debug configuration    The OMNeT++ Ambassador The OMNeT++ Ambassador is the intermediate component between OMNeT++ and Eclipse MOSAIC. As it implements the interface of an abstract federate ambassador in Eclipse MOSAIC. In the initialization phase the Ambassador applies for the TimeManagement policies time constrained and time regulated at the RTI. Remind that time constrained means that the time advances of the OMNeT++ Federate are dependent on the other simulators in the federation and time regulating means that the OMNeT++ Federate itself can prevent other federates from advancing their time.\nThe OMNeT++ simulation starts initially with an empty event queue and hence it needs to receive an interaction to fill the event queue with the first events to be processed. That means that the typical time management cycle in the Ambassador starts at step two with the Receive Interaction procedure. Note that messages within Eclipse MOSAIC usually effect more than one interaction e.g. a VehicleUpdates interaction contains information for added nodes and moved nodes. These are exchanged with OMNeT++ using a simple byte protocol. After this procedure the third step of time management cycle is processed with the initial Time Advance Grant. This is the point when the OMNeT++ simulation is able to start and the initialization phase is finished. Hence the time management cycle can be executed from first step which is waiting for a new NER until no federate requests further events and the simulation is finished.\nThe Time Representation One important issue for the simulation coupling is the common representation of the logical time at the RTI and the different federates in the federation. Normally, the time is a federate-defined abstract data type. The requirements for such a time are the ability for comparison and addition and most important the possibility of conversion without the loss of precision. Otherwise, deadlocks in the synchronization procedure are guaranteed. On the one hand Eclipse MOSAIC treats times as a 64-bit integer with a resolution of nanoseconds. On the other hand the OMNeT++ simulation time is represented by the type simtime_t which is a typedef to double. It is generally known that conversions from floating point to fixed point are vulnerable to rounding errors. To circumvent this issue the underlying raw 64-bit integer of the simtime_t representation is also made accessible, which works perfect if the scale exponent for time precision was previously initialized to $-9$ (i.e. nanoseconds).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e17d5285bdeec55226cf2b05562bd701","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/omnetpp_details/","section":"docs","summary":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them.","tags":null,"title":"OMNeT++ Federate Implementation","type":"docs"},{"authors":null,"categories":null,"content":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC. The implementations can be found in the package org.eclipse.mosaic.lib.model.delay. Note prior to the release of MOSAIC delay values were configured using Milliseconds as unit, this has been refactored to Nanoseconds. Alternatively you can specify delay values using a String with a unit (eg \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot;).\nDelay Models The Delay class represents an implementation for a specific delay model. The following model implementation exist:\nConstantDelay The ConstantDelay-class is arguably the simplest implementation of Delay. This model is configured with a single field delay, which the generateDelay(...)-method will simply return.\nWhile this delay doesn\u0026rsquo;t provide realistic behaviour in most cases it is optimal for testing purposes as it can easily be retraced.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot; }  SimpleRandomDelay The SimpleRandomDelay model allows for the generated delays to be randomly distributed between a minDelay and a maxDelay. Additionally, the steps field is used to limit the amount of different delays, by equally separating the interval into the amount of steps specified. This delay provides a simple and performant way to randomize and thereby more realistically reflect real-world delays.\nFor example, with the configuration below, one of the following delays is randomly chosen: [0.4, 0.9, 1.4, 1.9, 2.4] ms.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;0.4 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.4 ms\u0026quot; }  Gamma Delays MOSAIC provides two types of delays using a Gamma-distribution to sample values, namely GammaRandomDelay and GammaSpeedDelay. The parameters for the used Gamma-distribution have been determined experimentally. The GammaSpeedDelay extends the GammaRandomDelay by a speed penalty. Both delay-types aim to provide more realistic solution, than the previous models, but come with the downside of complexity.\nConfigurations:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaSpeedDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"991360c7135b1da7033c0bd4be1d7e9f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/delay_models/","section":"docs","summary":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC.","tags":null,"title":"Delay Models","type":"docs"},{"authors":null,"categories":null,"content":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable. Users interested in a different kind of simulation of cellular communication may use other simulators and develop ambassadors connecting them to Eclipse MOSAIC.\nThe Cellular Simulator in the current state consists of three main modules:\n UplinkModule GeocasterModule DownlinkModule  The Geocaster module simulates a mandatory component for ITS communication. It is inspired by the several architectures from research projects as simTD or CONVERGE to enable ITS use cases over cellular networks. It mainly takes over the task of an addressing and routing component with geographic knowledge to support geo-addressing. However, it also supports regular topological addressing. The Uplink and DownlinkModule are responsible for the transmission simulation. They account for the aspects of transmission delays, packet losses and available data rates. In this context,Uplink and Downlink always refer to the direction towards respectively from the Geocaster. For instance, a transmission from an Internet-based server towards a vehicle would include an Uplink between the server and the Geocaster and a Downlink between the Geocaster and the vehicle. While the Uplink direction only allows point-to-point communication (Unicast), the Downlink supports point-to-point (Unicast) as well as point-to-multipoint (Multicast).\nCellAmbassador folder structure The Eclipse MOSAIC Cell simulator can be configured via three distinct configuration files, which can be found within the scenarios' folder structure:\n└─ \u0026lt;scenario_name\u0026gt; └─ cell ├─ cell_config.json ................ Cell ambassador configuration file ├─ network.json ..................... Network configuration file └─ regions.json ..................... Regions configuration file  The network and regions configuration files are referenced in the cellular ambassador configuration file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration We provide a cellular configuration file in the example scenarios of Tiergarten and Barnim. Please note that in the default configuration of this scenario the Cellular Simulator is deactivated. To activate the cellular simulator just enable the cell federate in the scenario_config.json:\n\u0026quot;federates\u0026quot;: { ... \u0026quot;cell\u0026quot;: true, ... }  The central configuration for the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/cell_config.json could look like this:\n{ \u0026quot;debugGeocasting\u0026quot;: false, \u0026quot;visualizeRegions\u0026quot;: true, \u0026quot;networkConfigurationFile\u0026quot;: \u0026quot;network.json \u0026quot;, \u0026quot;regionConfigurationFile\u0026quot;: \u0026quot;regions.json \u0026quot; }  The visualizeRegions-option from the cell_config.json is used to write a KML-file that visualizes the used cell regions. Google Earth can be used to display it.\nThe configuration for the global network in the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/network.json could look like this:\n{ \u0026quot;globalNetwork\u0026quot;: { \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;50 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } }  Server configuration MOSAIC supports a type of simulation units, called servers. Traffic Management Centers are a specialised type of server. What differentiates servers from other units is, that they are treated as having no geographical location and instead are located \u0026ldquo;inside the internet.\u0026rdquo;. This concept omits prior shortcoming, where one would have to configure RSU\u0026rsquo;s as servers.\nServers are also configured in the network.json as follows:\n{ \u0026quot;globalNetwork\u0026quot;: { [...] }, \u0026quot;servers\u0026quot;: { { \u0026quot;id\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.5, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } } }, { [...] } } }  Servers get their configuration for the delay and retransmission models from the network.json and the configuration for the capacity-module has to be made from within an application, by activating the CellModule and properly setting the bit rates. This could look as follows:\ngetOs().getCellModule().enable( new CellModuleConfiguration() .maxUlBitrate(10000) .maxDlBitrate(10000) );  For the CellAmbassador to be able to recognize servers, the group-field in the mapping must match the id-field in the network.json, this also allows for multiple servers to utilize the same configuration. A mapping_config.json using the configuration from above could look as follows:\n{ ..., \u0026quot;tmcs\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ], \u0026quot;servers\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ] } ], ... }   Note that all bandwidths are given in bit per second and all delays in nanoseconds, unless explicitly defined differently. Also, every json configuration goes through a minifier, so comments are allowed in the configuration files. An example would be the comment before the globalNetwork option.\n Delay regions Additionally, the user has the option to define regions with individual delays. This can be used to simulate areas with bad reception, crowded areas etc.\nThe regions should be stored in \u0026lt;scenarioName\u0026gt;/cell/regions.json. An example definition for a single region called Ernst-Reuter-Platz could look like this:\n{ \u0026quot;regions\u0026quot;:[ { \u0026quot;id\u0026quot;: \u0026quot;Ernst-Reuter-Platz\u0026quot;, \u0026quot;area\u0026quot;: { \u0026quot;nw\u0026quot;: { \u0026quot;lon\u0026quot;:13.3249, \u0026quot;lat\u0026quot;:52.5131 }, \u0026quot;se\u0026quot;: { \u0026quot;lon\u0026quot;:13.3273, \u0026quot;lat\u0026quot;:52.5125 } }, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 4, \u0026quot;minDelay\u0026quot;: \u0026quot;50 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;120 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;220 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } ] }  Note that nw represents the upper-left (north-west) point of the rectangle and se the lower-right (southeast). For further information about the possible options, please refer to the Eclipse MOSAIC API documentation.\nThe actual configuration of the uplink and the downlink modules for each region exhibits the identical format as configuration of the globalNetwork in the network.json.\nWhen no regions are found, or if a node (a vehicle) is not within a specified region, the globalNetwork defined in the network.json-File will be used as the delay model.\nTransmission simulation One of the most important feature of the cellular simulator is an estimation of the delay experienced through the transport over the cellular network.\nThe cellular simulator offers various modes to estimate the delay of the transmissions. The type of estimation is specified with by delayType for the uplink and downlink for each region. You may also refer to the Delay-Chapter.\n delay.type = ’ConstantDelay’: The message is transmitted with the latency being exactly equal to delay. delay.type = ’SimpleRandomDelay’: The latency can assume different (randomly generated and uniformly distributed) values between minDelay and maxDelay. The number of different values is determined by steps. delay.type = ’GammaRandomDelay’: A gamma distribution is used to estimate the latency, with $ \\alpha $ = 2 and $ \\beta $= 2. The minimal delay minDelay is added to the result. The curve is fitted so that the maximum likelihood for the delay is exactly equal to expDelay. delay.type = ’GammaSpeedDelay’: This mode closely resembles the GammaRandomDelay. Additionally, a penalty for the velocity with which the node is moving is calculated. This penalty is then added to the original delay. The GammaRandomDelay and the GammaSpeedDelay are derived from a measurement campaign during a research project at the DCAITI.  The two different modes for the downlink are unicast and multicast which are configured separately. Multicast aims to simulate the features of Multimedia Broadcast Multicast Service (MBMS). The main difference in terms of the transmission for unicast and multicast is the handling of undeliverable messages. For unicast, the options lossProbability and maxRetries are used. Pr is short for packet retransmit and denotes the probability for a failed delivery and a subsequent retransmit. The maximum number of retries for the retransmission is configured through the maxRetries-option. The probability of a successful retransmit is recalculated on every try.\nIn case of multicast the lossProbability is used as packet loss rate. The value is factored into the delay calculation. In contrast to the unicast, just one transmission attempt is made for multicast.\nOperation Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.\nThe Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.\nIt supports the following addressing and casting schemes.\n CellTopocast is the normal unicast, where the Geocaster simply resolves the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn\u0026rsquo;t allow broadcast or anycast addresses, but any transmission protocols (tcp, udp).\n CellGeoUnicast addresses every node in the destination area individually. In this way it takes a geographic address and results in a loop to generate multiple unicasts.\n CellGeoBroadcast, which is basically MBMS, uses one broadcast to all nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"9a45880dc681c4e5ebf695dc5a761ad6","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_cell/","section":"docs","summary":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable.","tags":null,"title":"Network Simulator Cell","type":"docs"},{"authors":null,"categories":null,"content":" ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"1229190b1a57dc55c1b108bbe8a27a26","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/java_docs/","section":"docs","summary":" ","tags":null,"title":"Java Docs","type":"docs"},{"authors":null,"categories":null,"content":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration The root node of the configuration is a list of environment events. Each event require the type of the event, a rectangle area, a strength and the time window. The following example shows the configuration of an \u0026ldquo;Obstacle\u0026rdquo; event which is valid in the designated area (Rectangle) during the simulation time between 0 to 2000 seconds:\n{ \u0026quot;events\u0026quot; : [ { \u0026quot;type\u0026quot;: { \u0026quot;sensorType\u0026quot;: \u0026quot;OBSTACLE\u0026quot;, \u0026quot;value\u0026quot;: 1 }, \u0026quot;location\u0026quot;: { \u0026quot;area\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;Rectangle\u0026quot;, \u0026quot;a\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53654, \u0026quot;longitude\u0026quot;: 13.42116 }, \u0026quot;b\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53435, \u0026quot;longitude\u0026quot;: 13.42366 } } }, \u0026quot;time\u0026quot;: { \u0026quot;start\u0026quot;: \u0026quot;0 s\u0026quot;, \u0026quot;end\u0026quot;: \u0026quot;2000 s\u0026quot; } } ] }  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e2e8c6da6205aac6b2834ce5bed20d3d","permalink":"https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/environment_simulator/","section":"docs","summary":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed.","tags":null,"title":"Environment Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs. This also holds true for the environment model and the vehicle model. However, simple models for vehicle, environment and the battery are provided and will be briefly explained in the following sections.\n  The Battery Simulator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Installation This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.\nConfiguration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/battery/battery_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ battery └─ battery_config.json ................. Battery ambassador configuration file  Vehicle model The vehicle model holds the general properties of a vehicle. Examples would be the weight of the vehicle and the voltage at which the electric engine operates. However, as with the other models, the provided class for the vehicle model direct affects what can be configured here. If other properties are needed for the vehicle, this is the right place to put them. To implement an own vehicle, the class AVehicleModel has to be extended.\nBattery model The battery model defines the battery used by the vehicle itself. Useful properties could be the number of cells and their capacity. As with the vehicle, this class can be freely defined and use configuration values placed in the batteryModelConfig-area. To implement an own battery model, the class ABatteryModel needs to be extended.\nEnvironment model Normally environmental factors like rolling resistance of the given underground or air drag go into this section. At the current state, just a minimal environment model is bundled with the battery ambassador, mainly to show what is possible. To implement a custom environmentmodel, AEnvironmentModel has to be extended.\nSample configuration { \u0026quot;vehicleModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.vehicle.ElectricSmart\u0026quot;, \u0026quot;vehicleModelConfig\u0026quot;: { \u0026quot;Mass\u0026quot;: 1060, \u0026quot;ReferenceArea\u0026quot;: 1.95, \u0026quot;DragCoefficient\u0026quot;: 0.375, \u0026quot;TankToWheelEfficiency\u0026quot;: 0.7, \u0026quot;EletricMotorOperatingVoltage\u0026quot;: 350, \u0026quot;ConsumerOperatingVoltage\u0026quot;: 12 }, \u0026quot;batteryModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.battery.VerySimpleBatteryModel\u0026quot;, \u0026quot;batteryModelConfig\u0026quot;: { \u0026quot;NumberOfCells\u0026quot;: 93, \u0026quot;CellVoltage\u0026quot;: 4.3, \u0026quot;CellCapacityInAh\u0026quot;: 50, \u0026quot;eff_Summer\u0026quot;: 0.8448, \u0026quot;RechargingType\u0026quot;: 2, \u0026quot;MinSOC\u0026quot;: 0.30, \u0026quot;MaxSOC\u0026quot;: 0.70 }, \u0026quot;environmentModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.environment.DefaultEnvironment\u0026quot;, \u0026quot;environmentModelConfig\u0026quot;: { \u0026quot;Gravity\u0026quot;: 9.81, \u0026quot;FluidDensity\u0026quot;: 1.293, \u0026quot;RollingResistanceCoefficient\u0026quot;: 0.01 }, \u0026quot;consumers\u0026quot;: [ { \u0026quot;Radio\u0026quot;: 10 }, { \u0026quot;HeadLight\u0026quot;: 100 } ] }  This listing shows how the vehicle, environment and battery model classes for the bundled models are configured. Additionally, an arbitrary number of consumers can be configured that draw additional power from the battery. In this case, headlights and a radio are pre-defined.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"564b92ca6ad0f78206e0f1291d3a1002","permalink":"https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/battery_simulator/","section":"docs","summary":"The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs.","tags":null,"title":"MOSAIC Battery Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.\nRelease Date 2020-10-19\nChangelog [M+] Moved main code to new public repository github-com/eclipse-mosaic [M+] Changed license to EPL 2.0 [M+] Revised and refactored all public code. [M+] Significantly improved and extended the documentation, including new tutorials [M-] Replaced dependencies which are incompatible with EPL. [M+] Major overhaul of configuration files, e.g. * vsimrti/vsimrti_config.xml -\u0026gt; scenario_config.json * etc/defaults.xml -\u0026gt; etc/runtime.json [A+] Mapping configuration has been extended with new features (e.g. typeDistributions, parameter variations). [A+] New API for traffic light applications [C+] SNS supports most important Geo-Routing features for ad-hoc multihop communication [T+] Now supports SUMO 1.7.0  Changelog (Features and Bugfixes) Legend:\n[M] Eclipse MOSAIC\n[A] Application simulator\n[B] Battery simulator\n[C] Communication simulator\n[E] Environment simulator\n[N] Navigation component\n[S] Scenario-convert\n[T] Traffic simulator\n[+/-] new Feature/Bugfix\n","date":1603065600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1603065600,"objectID":"cc4c07b071bbda44d7b128dbd1954e1e","permalink":"https://www.eclipse.org/mosaic/post/release-20-0/","publishdate":"2020-10-19T00:00:00Z","relpermalink":"/mosaic/post/release-20-0/","section":"post","summary":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.","tags":null,"title":"First release of Eclipse MOSAIC","type":"post"},{"authors":[],"categories":[],"content":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.\nWhether dynamic lane assignment or traffic light phase assistant, new mobility services are designed to increase safety, efficiency, comfort, and facilitate environmentally friendly transport. The Eclipse MOSAIC simulation environment allows to explore how this can be achieved, before the services are tested in field trials on the road. Eclipse MOSAIC can also be used for testing driver assistance systems and to optimize the entire traffic.\nFlexible coupling of simulators Eclipse MOSAIC integrates, depending on the simulation scenario, different aspects like individual building blocks into a holistic system, e.g., traffic congestion, battery charging of electric cars, or communication between other road users and a central cloud. The level of detail for individual aspects is variable: from a rough mobility scenario for an entire city to detailed individual driving maneuvers.\nThe open-source version of Eclipse MOSAIC already includes several simulators, e.g., Eclipse SUMO for traffic and OMNeT++ and ns-3 for communication. Further simulators can be coupled, e.g., Fraunhofer FOKUS offers the simulator PHABMACS for the realistic modeling of autonomous vehicles.\nIn addition to the simulator coupling, Eclipse MOSAIC manages the following tasks:\n Federation: Individual simulators are interchangeable within a scenario. Interaction: Information from one simulator is also taken into account by others. Time: All simulators run synchronously.  Additionally, Eclipse MOSAIC offers several tools for evaluation and visualization of the results, which are also included in the open-source package.\nIn the recently completed EU project INFRAMIX, Eclipse MOSAIC was used to test scenarios for the future road that allow mixed traffic between conventional and automated vehicles.\nFraunhofer FOKUS has been a strategic development member of the Eclipse Foundation since May of this year and works in close cooperation with the partners of the working groups OpenMobility and openADx (Open Source for Autonomous Driving).\nFurther information about Eclipse MOSAIC: https://www.eclipse.org/mosaic https://github.com/eclipse/mosaic\nFurther information about INFRAMIX: https://www.fokus.fraunhofer.de/de/fokus/news/inframix-projekt_2020_08\nFurther information about EclipseCon: https://www.eclipsecon.org/2020\n","date":1602806400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1602806400,"objectID":"945968ed12d4d56ceff36a8ffcc80747","permalink":"https://www.eclipse.org/mosaic/post/eclipse-mosaic/","publishdate":"2020-10-16T00:00:00Z","relpermalink":"/mosaic/post/eclipse-mosaic/","section":"post","summary":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.","tags":[],"title":"Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC","type":"post"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"8576ec274c98b3831668a172fa632d80","permalink":"https://www.eclipse.org/mosaic/about/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/about/","section":"","summary":"Hello!","tags":null,"title":"About","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7cb4b52984a9d47af29166100a552aba","permalink":"https://www.eclipse.org/mosaic/get_in_contact/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/get_in_contact/","section":"","summary":"Eclipse MOSAIC.","tags":null,"title":"Contact","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"614f103684a170a5d2fd1d1f92949420","permalink":"https://www.eclipse.org/mosaic/contribution/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/contribution/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Contribution to Eclipse MOSAIC","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"bf47fe1505bc48f51aef798d7a4d34a6","permalink":"https://www.eclipse.org/mosaic/download/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/download/","section":"","summary":"List of links to download the latest releases and other components.","tags":null,"title":"Download","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7bb3ac9163e73505cd320646a459de77","permalink":"https://www.eclipse.org/mosaic/community/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/community/","section":"","summary":"Eclipse MOSAIC Community","tags":null,"title":"Eclipse MOSAIC Community","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"9eb50f9088083bebcb7e4cf99e22b9ed","permalink":"https://www.eclipse.org/mosaic/news/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/news/","section":"","summary":"News","tags":null,"title":"News","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"23d1e75f872528fc12f5f2b142375ff7","permalink":"https://www.eclipse.org/mosaic/publications/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/publications/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Publications","type":"widget_page"}]
\ No newline at end of file
diff --git a/index.webmanifest b/index.webmanifest
index dd24e25..b56f54e 100644
--- a/index.webmanifest
+++ b/index.webmanifest
@@ -1,6 +1,6 @@
 {
-  "name": "Eclipse MOSAIC",
-  "short_name": "Eclipse MOSAIC",
+  "name": "Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility",
+  "short_name": "Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility",
   "lang": "en-us",
   "theme_color": "#68145C",
   "background_color": "#68145C",
diff --git a/index.xml b/index.xml
index 1caf866..fedc3a6 100644
--- a/index.xml
+++ b/index.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Eclipse MOSAIC</title>
+    <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/</link>
       <atom:link href="https://www.eclipse.org/mosaic/index.xml" rel="self" type="application/rss+xml" />
-    <description>Eclipse MOSAIC</description>
+    <description>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</description>
     <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Mon, 19 Oct 2020 00:00:00 +0000</lastBuildDate>
     <image>
       <url>https://www.eclipse.org/mosaic/images/logo.svg</url>
-      <title>Eclipse MOSAIC</title>
+      <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
       <link>https://www.eclipse.org/mosaic/</link>
     </image>
     
@@ -1026,7 +1026,8 @@
       <link>https://www.eclipse.org/mosaic/docs/simulators/application_simulator/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/simulators/application_simulator/</guid>
-      <description>&lt;p&gt;This section presents the architecture and the main features of the &lt;strong&gt;Application Simulator&lt;/strong&gt; as well as the related &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador, which is used to configure individual simulation entities (or simulation units) and &amp;ldquo;map&amp;rdquo; applications to them.&lt;/p&gt;
+      <description>&lt;p&gt;This section presents the architecture and the main features of the &lt;strong&gt;Application Simulator&lt;/strong&gt; as well as the related &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador,
+which is used to configure individual simulation entities (or simulation units) and &amp;ldquo;map&amp;rdquo; applications to them.&lt;/p&gt;
 &lt;h2 id=&#34;eclipse-mosaic-application-simulator&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/h2&gt;
 &lt;p&gt;The &lt;strong&gt;Application Simulator&lt;/strong&gt; plays an important role in the simulation of vehicles and its functions. It provides the capability
 to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others)
@@ -1045,9 +1046,11 @@
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
 &lt;p&gt;This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.&lt;/p&gt;
 &lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
-&lt;p&gt;Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-mapping&#34;&gt;Mapping&lt;/a&gt;). The applications for the units are basically compiled JAVA classes, which &lt;strong&gt;extend&lt;/strong&gt; the abstract class
-&lt;code&gt;AbstractApplication&lt;/code&gt;. Those classes have to be deployed as pre-compiled JAR files into the &lt;code&gt;application&lt;/code&gt; folder of the simulated scenario.&lt;/p&gt;
+&lt;p&gt;Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application
+
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-mapping&#34;&gt;Mapping&lt;/a&gt;). The applications for the units are basically
+compiled JAVA classes, which &lt;strong&gt;extend&lt;/strong&gt; the abstract class &lt;code&gt;AbstractApplication&lt;/code&gt;. Those classes have to be deployed as pre-compiled
+JAR files into the &lt;code&gt;application&lt;/code&gt; folder of the simulated scenario.&lt;/p&gt;
 
 
 
@@ -1083,8 +1086,12 @@
 &lt;/figure&gt;
 
 &lt;h4 id=&#34;application-operating-system&#34;&gt;Application Operating System&lt;/h4&gt;
-&lt;p&gt;The &lt;code&gt;AbstractApplication&lt;/code&gt; possesses a unit-specific &lt;code&gt;OperatingSystem&lt;/code&gt;, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like &lt;code&gt;slowDown()&lt;/code&gt; for vehicles).&lt;/p&gt;
-&lt;p&gt;As the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules &lt;code&gt;NavigationModule&lt;/code&gt; (Navigation + Routing for vehicles) / &lt;code&gt;RoutingModule&lt;/code&gt; (Routing-only for static units) and &lt;code&gt;AdHocModule&lt;/code&gt; / &lt;code&gt;CellModule&lt;/code&gt; with APIs dedicated to their purpose.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;AbstractApplication&lt;/code&gt; possesses a unit-specific &lt;code&gt;OperatingSystem&lt;/code&gt;, which allows interactions with the simulated parameters.
+The operating system provides access to information like the current time or position of the units and could control unit-specific
+actions (like &lt;code&gt;slowDown()&lt;/code&gt; for vehicles).&lt;/p&gt;
+&lt;p&gt;As the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and
+sending messages) are more complex, they are separated into the specific modules &lt;code&gt;NavigationModule&lt;/code&gt; (Navigation + Routing for
+vehicles) / &lt;code&gt;RoutingModule&lt;/code&gt; (Routing-only for static units) and &lt;code&gt;AdHocModule&lt;/code&gt; / &lt;code&gt;CellModule&lt;/code&gt; with APIs dedicated to their purpose.&lt;/p&gt;
 &lt;p&gt;The following table lists all modules a unit&amp;rsquo;s operating system could provide.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -1112,10 +1119,16 @@
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The presented communication modules &lt;code&gt;AdHocModule&lt;/code&gt;, &lt;code&gt;CellModule&lt;/code&gt; are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the &lt;code&gt;CommunicationApplication&lt;/code&gt;.&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The presented communication modules &lt;code&gt;AdHocModule&lt;/code&gt;, &lt;code&gt;CellModule&lt;/code&gt; are used for the sending part of a transmission. The message
+reception is realized by Application Interfaces provided by the &lt;code&gt;CommunicationApplication&lt;/code&gt;.&lt;/p&gt;
+&lt;/blockquote&gt;
 &lt;h4 id=&#34;application-interfaces&#34;&gt;Application Interfaces&lt;/h4&gt;
-&lt;p&gt;Application interfaces handle call-backs to incoming events via their methods, like &lt;code&gt;onVehicleUpdated()&lt;/code&gt;, called by the application simulator.
-The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the &amp;ldquo;Provides&amp;rdquo; column. The elementary interface (&lt;code&gt;Application&lt;/code&gt;) provides the methods &lt;code&gt;onStartup()&lt;/code&gt;, &lt;code&gt;onShutdown()&lt;/code&gt;. Implementation details are given in 
+&lt;p&gt;Application interfaces handle call-backs to incoming events via their methods, like &lt;code&gt;onVehicleUpdated()&lt;/code&gt;, called by the
+application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as
+important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the
+&amp;ldquo;Provides&amp;rdquo; column. The elementary interface (&lt;code&gt;Application&lt;/code&gt;) provides the methods &lt;code&gt;onStartup()&lt;/code&gt;, &lt;code&gt;onShutdown()&lt;/code&gt;. Implementation details
+are given in 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/&#34;&gt;Development of applications&lt;/a&gt;.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -1200,7 +1213,8 @@
 in custom configuration files (e.g. &lt;code&gt;ETSIApplication.json&lt;/code&gt; or &lt;code&gt;ETSIApplication_veh_0.json&lt;/code&gt;).&lt;/p&gt;
 &lt;hr&gt;
 &lt;h2 id=&#34;eclipse-mosaic-mapping&#34;&gt;Eclipse MOSAIC Mapping&lt;/h2&gt;
-&lt;p&gt;Closely related to the Application Simulator, the &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:&lt;/p&gt;
+&lt;p&gt;Closely related to the Application Simulator, the &lt;strong&gt;Mapping&lt;/strong&gt; Ambassador is used for the initial choreography of a simulation.
+It defines two major aspects for the simulation units:&lt;/p&gt;
 &lt;ol&gt;
 &lt;li&gt;number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator)&lt;/li&gt;
 &lt;li&gt;specific application(s) to be &amp;ldquo;mapped&amp;rdquo; on the simulation units and simulated in the Application Simulation&lt;/li&gt;
@@ -1210,12 +1224,14 @@
 &lt;p&gt;The Mapping configuration is divided into different parts:&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Pre Definitions of &lt;code&gt;prototypes&lt;/code&gt; and &lt;code&gt;deviations&lt;/code&gt;&lt;/li&gt;
-&lt;li&gt;Entity Definitions of &lt;code&gt;vehicles&lt;/code&gt;, &lt;code&gt;rsus&lt;/code&gt;, &lt;code&gt;tls&lt;/code&gt; and &lt;code&gt;tmcs&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;Entity Definitions of &lt;code&gt;vehicles&lt;/code&gt;, &lt;code&gt;rsus&lt;/code&gt;, &lt;code&gt;tls&lt;/code&gt; &lt;code&gt;servers&lt;/code&gt; and &lt;code&gt;tmcs&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;Advanced Vehicle Definitions (including route generation) in &lt;code&gt;matrixMappers&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;Common Definitions in &lt;code&gt;config&lt;/code&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;h4 id=&#34;prototypes&#34;&gt;Prototypes&lt;/h4&gt;
-&lt;p&gt;&lt;code&gt;prototypes&lt;/code&gt; define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.&lt;/p&gt;
+&lt;p&gt;&lt;code&gt;prototypes&lt;/code&gt; define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the
+definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in
+shorter Mapping configurations.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;prototypes&amp;quot;: [
     {
         &amp;quot;name&amp;quot;: &amp;quot;CamVehicle&amp;quot;,
@@ -1227,8 +1243,8 @@
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Prototypes can be created for all types of entities. Next to the list of &lt;code&gt;applications&lt;/code&gt; which is available for all types of entities, vehicle types
-provide various other parameters to be adjusted.&lt;/p&gt;
+&lt;p&gt;Prototypes can be created for all types of entities. Next to the list of &lt;code&gt;applications&lt;/code&gt; which is available for all types of entities,
+vehicle types provide various other parameters to be adjusted.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -1300,8 +1316,9 @@
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;p&gt;For the majority of the parameters above (see column &amp;ldquo;Deviation&amp;rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype
-will be loaded with a random value within this distribution. To achieve this, a separate &lt;code&gt;deviations&lt;/code&gt; attribute must be added to the type:&lt;/p&gt;
+&lt;p&gt;For the majority of the parameters above (see column &amp;ldquo;Deviation&amp;rdquo;), a normal distribution can be created. In that case, each individual
+vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate &lt;code&gt;deviations&lt;/code&gt;
+attribute must be added to the type:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;prototypes&amp;quot;: [
         {
             &amp;quot;name&amp;quot;: &amp;quot;Car&amp;quot;,
@@ -1314,17 +1331,23 @@
         }
     ]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;According to the config above, the basic Parameter value conforms to the expected value and the given value in the &lt;code&gt;deviations&lt;/code&gt; attribute conforms to the $\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\sigma$.&lt;/p&gt;
+&lt;p&gt;According to the config above, the basic parameter value conforms to the expected value, and the given value in the &lt;code&gt;deviations&lt;/code&gt;
+attribute conforms to the $\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will
+be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\sigma$.&lt;/p&gt;
 &lt;h4 id=&#34;entities&#34;&gt;Entities&lt;/h4&gt;
 &lt;p&gt;&lt;strong&gt;Vehicles&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;The &lt;code&gt;vehicles&lt;/code&gt;-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;vehicles&lt;/code&gt;-section is the centerpiece of the Mapping configuration. It defines the departures (times and number),
+routes, and types of the vehicles.&lt;/p&gt;
 &lt;p&gt;Each spawner in this list generates a traffic stream of vehicles on a certain &lt;code&gt;route&lt;/code&gt;. The vehicles stream begins at &lt;code&gt;startingTime&lt;/code&gt; and
-generates vehicles until &lt;code&gt;maxNumberVehicles&lt;/code&gt; is reached. The time between two consecutively vehicles is implicitly given by the &lt;code&gt;targetFlow&lt;/code&gt; property, which
-defines how many vehicles per hour are going to spawned.&lt;/p&gt;
-&lt;p&gt;Each vehicle spawner must refer to at least one vehicle type (&lt;code&gt;types&lt;/code&gt;). A vehicle type must either refer to a type from the &lt;code&gt;prototypes&lt;/code&gt; section by using its &lt;code&gt;name&lt;/code&gt;,
-or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the &lt;code&gt;types&lt;/code&gt; attribute,
-&lt;code&gt;weight&lt;/code&gt;s can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, invididual vehicle types are assumed to be distributed equally.
-Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.&lt;/p&gt;
+generates vehicles until &lt;code&gt;maxNumberVehicles&lt;/code&gt; is reached. The time between two consecutively vehicles is implicitly given by the
+&lt;code&gt;targetFlow&lt;/code&gt; property, which defines how many vehicles per hour are going to be spawned.&lt;/p&gt;
+&lt;p&gt;Each vehicle spawner must refer to at least one vehicle type (&lt;code&gt;types&lt;/code&gt;). A vehicle type must either refer to a type from the &lt;code&gt;prototypes&lt;/code&gt;
+section by using its &lt;code&gt;name&lt;/code&gt;, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type
+is referenced in the &lt;code&gt;types&lt;/code&gt; attribute, &lt;code&gt;weight&lt;/code&gt;s can be used to specify the ratios to choose between them when loading an individual
+vehicle. If no weights are defined, individual vehicle types are assumed to be distributed equally.&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.&lt;/p&gt;
+&lt;/blockquote&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;vehicles&amp;quot;: [
     {
         &amp;quot;startingTime&amp;quot;: 5.0,
@@ -1371,7 +1394,9 @@
 &lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;&lt;strong&gt;Road Side Units&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;The &lt;code&gt;rsus&lt;/code&gt;-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (&lt;code&gt;lat&lt;/code&gt;, &lt;code&gt;lon&lt;/code&gt; coordinates). Referring to &lt;code&gt;prototype&lt;/code&gt; definitions with simply specifying its name in the &lt;code&gt;name&lt;/code&gt; property will automatically fill in relevant properties of the RSU.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;rsus&lt;/code&gt;-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a
+defined position (&lt;code&gt;lat&lt;/code&gt;, &lt;code&gt;lon&lt;/code&gt; coordinates). Referring to &lt;code&gt;prototype&lt;/code&gt; definitions with simply specifying its name in the &lt;code&gt;name&lt;/code&gt;
+property will automatically fill in relevant properties of the RSU.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;rsus&amp;quot;: [
     {
         &amp;quot;lat&amp;quot;: 52.65027,
@@ -1382,8 +1407,14 @@
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;strong&gt;Traffic Lights&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;In the &lt;code&gt;trafficLights&lt;/code&gt;-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The &lt;code&gt;tlGroupId&lt;/code&gt;-property allows mapping of applications to the traffic light groups, referring them by Id.&lt;/p&gt;
-&lt;p&gt;Alternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.&lt;/p&gt;
+&lt;p&gt;In the &lt;code&gt;trafficLights&lt;/code&gt;-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of
+traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and
+their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS).
+The &lt;code&gt;tlGroupId&lt;/code&gt;-property allows mapping of applications to the traffic light groups, referring them by Id.&lt;/p&gt;
+&lt;p&gt;Alternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the
+scenario. (Note: The weights do not have to add up to 100 or 1. Consequently, all traffic lights will be mapped using the specified
+prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you
+have to define one traffic light without any applications and add a weight to it.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;trafficLights&amp;quot;: [
     {
         &amp;quot;tlGroupId&amp;quot;: &amp;quot;26704448&amp;quot;,
@@ -1395,15 +1426,35 @@
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to 
+&lt;p&gt;For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to
+
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/#traffic-lights&#34;&gt;Simulation Scenarios - Traffic Lights&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Servers&lt;/strong&gt;&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;servers&lt;/code&gt;-array can be used to specify server units, which can be used to communicate with other units via the cell module.
+Capacity configurations for servers should be done when enabling the &lt;code&gt;CellModule&lt;/code&gt;. Delay and transmission models are configured
+in the &lt;code&gt;network.json&lt;/code&gt; of the cell module (see 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;Note: The &lt;code&gt;group&lt;/code&gt; parameter in the mapping configuration has to match with the id in the network configuration in order to
+properly function.&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;servers&amp;quot;: [
+    {
+        &amp;quot;name&amp;quot;: &amp;quot;MyServer&amp;quot;,
+        &amp;quot;group&amp;quot;: &amp;quot;TestServers&amp;quot;,
+        &amp;quot;applications&amp;quot;: [ &amp;quot;ServerApp1&amp;quot;, &amp;quot;ServerApp2&amp;quot; ]
+    }
+]
+&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;strong&gt;Traffic Management Centers&lt;/strong&gt;&lt;/p&gt;
 &lt;p&gt;The &lt;code&gt;tmc&lt;/code&gt;-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC
 provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties
-from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).&lt;/p&gt;
+from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits).
+Additionally, TMCs are an extension of Servers and can be configured in the same way that servers are&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;tmcs&amp;quot;: [
     {
         &amp;quot;name&amp;quot;: &amp;quot;HighwayManagement&amp;quot;,
+        &amp;quot;group&amp;quot;: &amp;quot;TestTmcServers&amp;quot;,
         &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()&amp;quot; ],
         &amp;quot;inductionLoops&amp;quot;: [ &amp;quot;detector_0&amp;quot;, &amp;quot;detector_1&amp;quot;, &amp;quot;detector_2&amp;quot; ],
         &amp;quot;laneAreaDetectors&amp;quot;: [ ]
@@ -1411,11 +1462,14 @@
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
-&lt;p&gt;All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.&lt;/p&gt;
+&lt;p&gt;All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles
+in every simulation run with regard to the given ratios at each point in time the simulation).
+The Stochastic Mapping results in a random order of mapped units.&lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;h4 id=&#34;use-type-distributions-in-complex-traffic-scenarios&#34;&gt;Use Type Distributions in Complex Traffic Scenarios&lt;/h4&gt;
 &lt;p&gt;In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them
-again and again, you can use &lt;code&gt;typeDistributions&lt;/code&gt;. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.&lt;/p&gt;
+again and again, you can use &lt;code&gt;typeDistributions&lt;/code&gt;. By doing so, it is very simple to adjust the list of types and weights at only one
+place in the configuration file.&lt;/p&gt;
 &lt;p&gt;Instead of defining an equal list of types and weights for each single vehicle spawner, like in this example:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;vehicles&amp;quot;: [
     {
@@ -1465,8 +1519,11 @@
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;h4 id=&#34;advanced-vehicle-spawners-with-route-generation&#34;&gt;Advanced vehicle spawners with route generation&lt;/h4&gt;
-&lt;p&gt;It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the &lt;code&gt;matrixMappers&lt;/code&gt;-list. Each MatrixMapper consists of a list of &lt;code&gt;points&lt;/code&gt;, the vehicle-&lt;code&gt;types&lt;/code&gt; to be used and the actual flow-values (&lt;code&gt;odValues&lt;/code&gt;) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.&lt;/p&gt;
-&lt;p&gt;The MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.&lt;/p&gt;
+&lt;p&gt;It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the &lt;code&gt;matrixMappers&lt;/code&gt;-list.
+Each MatrixMapper consists of a list of &lt;code&gt;points&lt;/code&gt;, the vehicle-&lt;code&gt;types&lt;/code&gt; to be used and the actual flow-values (&lt;code&gt;odValues&lt;/code&gt;) between each
+of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.&lt;/p&gt;
+&lt;p&gt;The MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between
+each of the points.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;
 &amp;quot;matrixMappers&amp;quot;: [
     {
@@ -1558,7 +1615,8 @@
 &lt;/table&gt;
 &lt;h3 id=&#34;unit-identifiers&#34;&gt;Unit Identifiers&lt;/h3&gt;
 &lt;p&gt;Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify
-a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.&lt;/p&gt;
+a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files
+which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -1705,9 +1763,12 @@
 routes or  build own routes via route generation tools (e.g. DUAROUTER by SUMO).&lt;/p&gt;
 &lt;p&gt;This chapter intends to highlight the most common workflows for the work with &lt;code&gt;scenario-convert&lt;/code&gt;.
 We will be using &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;&lt;code&gt;this&lt;/code&gt;&lt;/a&gt; OSM-file for most of the
-use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.
-For a complete reference of the script please check 
-&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
+use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.&lt;/p&gt;
+&lt;div class=&#34;alert alert-note&#34;&gt;
+  &lt;div&gt;
+&lt;p&gt;&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;Complete reference of the scenario-convert script&lt;/a&gt;.&lt;/p&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
 
 
 
@@ -1804,7 +1865,8 @@
 &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm
 &lt;/code&gt;&lt;/pre&gt;
 &lt;div class=&#34;row&#34;&gt;
-  
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -1838,7 +1900,9 @@
 
 &lt;/figure&gt;
 
-  
+    &lt;/div&gt;
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -1872,9 +1936,11 @@
 
 &lt;/figure&gt;
 
+    &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class=&#34;row&#34;&gt;
-  
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -1908,7 +1974,9 @@
 
 &lt;/figure&gt;
 
-  
+    &lt;/div&gt;
+    &lt;div class=&#34;col-6&#34;&gt;
+        
 
 
 
@@ -1942,82 +2010,11 @@
 
 &lt;/figure&gt;
 
+    &lt;/div&gt;
 &lt;/div&gt;
-&lt;p&gt;
-
-
-
-
-
-
-
-  
-  
-
-
-&lt;div class=&#34;gallery&#34;&gt;
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-    
-      
-    
-  
-  
-  &lt;a data-fancybox=&#34;gallery-gallery&#34; data-caption=&#34;Uncleaned OSM-file&#34; href=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_uncleaned.png&#34;&gt;
-    &lt;img data-src=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_uncleaned.png&#34; alt=&#34;&#34;&gt;
-  &lt;/a&gt;
-  
-  
-  
-  
-    
-      
-    
-  
-  
-  &lt;a data-fancybox=&#34;gallery-gallery&#34; data-caption=&#34;Cleaned OSM-File&#34; href=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_cleaned.png&#34;&gt;
-    &lt;img data-src=&#34;https://www.eclipse.org/mosaic/mosaic/img/osm_cleaned.png&#34; alt=&#34;&#34;&gt;
-  &lt;/a&gt;
-  
-  
-  
-&lt;/div&gt;
-To avoid &amp;ldquo;cleaning&amp;rdquo; the OSM-file, please use the option &amp;ldquo;skip-osm-filter&amp;rdquo;.&lt;/p&gt;
+&lt;p&gt;To avoid &amp;ldquo;cleaning&amp;rdquo; the OSM-file, please use the option &amp;ldquo;skip-osm-filter&amp;rdquo;.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter
 &lt;/code&gt;&lt;/pre&gt;
-
-
-
-
-
-
-
-
-  
-  
-
-
-&lt;div class=&#34;gallery&#34;&gt;
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-&lt;/div&gt;
 &lt;p&gt;&lt;strong&gt;Generating Routes&lt;/strong&gt;&lt;br&gt;
 The scenario-convert also offers the option &lt;code&gt;--generate-routes&lt;/code&gt;, which will generate
 a route-file, given some additional information. For example purposes we will run the
@@ -2154,19 +2151,157 @@
 &lt;h2 id=&#34;reference-documentation-for-scenario-convert&#34;&gt;Reference documentation for scenario-convert&lt;/h2&gt;
 &lt;h3 id=&#34;usage-of-scenario-convert&#34;&gt;Usage of scenario-convert&lt;/h3&gt;
 &lt;p&gt;The following listing shows an overview for the usage of scenario-convert:&lt;/p&gt;
-&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/ScenarioConvertFunctions.txt&#34; download&gt;scenarioConvertFunctions&lt;/a&gt;&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt; Usage: scenario-convert [OPERATION] -d &amp;lt;DATABASEFILE&amp;gt; [OPTIONS]*
+
+ Examples (options in [] are optional):
+ 1. Import an osm file and write data into database
+  scenario-convert --osm2db -i &amp;lt;OSMFILE&amp;gt; [-o] [-d &amp;lt;DATABASE&amp;gt;]
+ 2. Export db content to sumo-readable files
+  scenario-convert --db2sumo -d &amp;lt;DATABASE&amp;gt; [-s &amp;lt;SUMOPREFIX&amp;gt;] [-n]
+ 3. Reimport a sumo routefile into a database
+  scenario-convert --sumo2db -d &amp;lt;DATABASE&amp;gt; -i &amp;lt;ROUTEFILE&amp;gt;
+ 4. Combine steps 1 and 2
+  scenario-convert --osm2sumo -d &amp;lt;DATABASE&amp;gt; -i &amp;lt;OSMFILE&amp;gt; [-s &amp;lt;SUMOPREFIX&amp;gt;]
+ 5. Export db content to Shapefile format
+  scenario-convert --db2shp -d &amp;lt;DATABASE&amp;gt;
+ 6. Import an srtm file and write elevation data to nodes of an existing database
+  scenario-convert --srtm2db -i &amp;lt;SRTMFILE&amp;gt; -d &amp;lt;DATABASE&amp;gt;
+
+-------------------------------------------------------------------------------
+
+ CONFIGURATION FILE:
+ -h,--help                                 Prints this help screen.
+
+ -c,--config-file &amp;lt;PATH&amp;gt;                   Optional, refers to a configuration file which contains all parameters in
+                                           JSON format.
+    --osm2db                               Converts a OpenStreetMap file to a new scenario database.
+    --sumo2db                              Imports a SUMO Network/Routefile. Be aware that you may have to re-export an
+                                           imported network.
+    --srtm2db                              Imports an SRTM file and writes elevation data to nodes.
+    --db2sumo                              Exports the network to SUMO node and edge files.
+    --db2shp                               Exports the database into Shapefile format.
+    --db2mosaic                            Creates directory structure for a MOSAIC scenario based on the database
+                                           contents.
+    --osm2sumo                             Combination of osm2db and db2sumo.
+    --osm2mosaic                           Combination of osm2db and db2vsimrti.
+    --update                               Updates the database to the current scheme.
+
+ -d,--database &amp;lt;PATH&amp;gt;                      The path to the database.
+                                           For import: File to import to. If not given, a new file is created.
+                                           For export: File to load from.
+                                           For update operations: file to update.
+ -i,--input &amp;lt;PATH&amp;gt;                         Defines an input file to use in an import. File type depends on the import
+                                           operation (OSM File/Database file/SUMO net file/SUMO route file).
+ -s,--sumo-prefix &amp;lt;STRING&amp;gt;                 Prefix for the generated sumo files  (uses database name when not defined).
+ -f,--force                                Force overwrite of existing files instead of incrementing file names.
+ -m,--mapping-file &amp;lt;PATH&amp;gt;                  Uses the given mapping configuration to export existing vehicleTypes and
+                                           vehicles data to *.rou.xml (with --export-routes).
+    --import-lat &amp;lt;DOUBLE&amp;gt;                  Center latitude of imported region to project coordinates.
+    --import-lon &amp;lt;DOUBLE&amp;gt;                  Center longitude of imported region to project coordinates.
+    --import-zone &amp;lt;STRING&amp;gt;                 UTM zone of location for projecting coords in default format (e.g. 32n).
+
+ -g,--generate-routes                      Generates route(s) from one point to another. The begin and end for the route
+                                           must be known (see below options).
+    --route-begin-lat &amp;lt;DOUBLE&amp;gt;             Latitude of the starting point, needs --route-begin-lon as well.
+    --route-begin-lon &amp;lt;DOUBLE&amp;gt;             Longitude of the starting point, needs --route-begin-lat as well.
+    --route-begin-latlon &amp;lt;DOUBLE,DOUBLE&amp;gt;   [latitude],[longitude] of the starting point.
+    --route-begin-node-id &amp;lt;STRING&amp;gt;         OSM node id of the starting point (use instead of lat/lon).
+    --route-end-lat &amp;lt;DOUBLE&amp;gt;               Latitude of the starting point, needs --route-end-lon as well.
+    --route-end-lon &amp;lt;DOUBLE&amp;gt;               Longitude of the starting point, needs --route-end-lat as well.
+    --route-end-latlon &amp;lt;DOUBLE,DOUBLE&amp;gt;     [latitude],[longitude] of the ending point.
+    --route-end-node-id &amp;lt;STRING&amp;gt;           OSM node id of the ending point (use instead of lat/lon).
+    --route-matrix &amp;lt;STRING,STRING,...&amp;gt;     Calculates all possible routes starting and ending at the given nodes, given
+                                           as comma-separated list (e.g. 12345,87123,89123)
+    --number-of-routes &amp;lt;INTEGER&amp;gt;           Defines the number of alternative routes to be calculated (default=1).
+
+    --skip-osm-filter                      Skips automatic filtering of the OSM file (only with osm2xxx).
+ -b,--import-buildings                     Write OSM building information in database.
+    --ignore-turn-restrictions             Ignore all defined turn restrictions on OSM import.
+    --disable-graph-cleanup                Turns off the removal of unconnected parts from the main traffic network
+                                           graph . Since several components of VSimRTI require one main graph without
+                                           disconnected ways and nodes, this option should be used only if the cleanup
+                                           procedure is faulty.
+    --skip-netconvert                      Skips automatic starting sumo netconvert for creating netfile (only with xxx2sumo).
+    --skip-traffic-lights-export           Skips automatic exporting traffic light information for nodes (only with xxx2sumo).
+    --osm-speeds-file &amp;lt;PATH&amp;gt;               Define a property file which contains speed information which are used to set
+                                           the speed for OSM ways without a max speed tag (only with osm2xxx).
+    --osm-speeds-overwrite                 If set to true , the maxspeed tags of ways are ignored and replaced by either
+                                           default values , or by speed information defined via the --osm-speeds-file
+                                           option (only with osm2xxx).
+
+-------------------------------------------------------------------------------
+
+ File placement:
+   When a database file is given with -d every created file will be placed by
+   the database file in the given path. When the file is passed without a path
+   the path used to execute the command from will be used as a base.
+   For import operations where -d is omited all files will be placed alongside
+   the input file given.
+
+   When a file to be created already exist the filename will be postfixed with
+   an incrementing number. This behaviour can be overwritten
+
+-------------------------------------------------------------------------------
+
+&lt;/code&gt;&lt;/pre&gt;
 &lt;h3 id=&#34;configuration-files-for-scenario-convert&#34;&gt;Configuration-files for scenario-convert&lt;/h3&gt;
 &lt;p&gt;Scenario-convert offers a way to safe your conversion-parameters in a &lt;code&gt;JSON&lt;/code&gt; configuration file using
 the option &lt;code&gt;-c&lt;/code&gt; or &lt;code&gt;--config-file&lt;/code&gt;.&lt;br&gt;
 The following listing shows how to save the options used in the example above:&lt;/p&gt;
-&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz_config.json&#34; download&gt;steglitzConfigFile&lt;/a&gt;&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;{
+  &amp;#34;operatingMode&amp;#34;: &amp;#34;osm2mosaic&amp;#34;,
+  &amp;#34;inputFile&amp;#34;: &amp;#34;steglitz.osm&amp;#34;,
+  &amp;#34;executeOsmosis&amp;#34;: true,
+  &amp;#34;generateRoutes&amp;#34;: true,
+  &amp;#34;routeBeginLatLon&amp;#34;: &amp;#34;52.457616,13.318392&amp;#34;,
+  &amp;#34;routeEndLatLon&amp;#34;: &amp;#34;52.454774,13.333554&amp;#34;,
+  &amp;#34;numberOfRoutes&amp;#34;: 3
+}
+&lt;/code&gt;&lt;/pre&gt;
 &lt;h3 id=&#34;speed-files&#34;&gt;Speed-files&lt;/h3&gt;
 &lt;p&gt;Below you can find a properties file which can be used during the import of OSM data
 in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the
 option &lt;code&gt;--osm-speeds-file &amp;lt;FILE&amp;gt;&lt;/code&gt;. In the speed properties file, for each way type a speed value can
 be defined, according to the OSM 
 &lt;a href=&#34;http://wiki.openstreetmap.org/wiki/Key:highway&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;highway&lt;/code&gt;&lt;/a&gt; key.&lt;/p&gt;
-&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/car-speeds.properties&#34; download&gt;speed-properties&lt;/a&gt;&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;# the unit the speed values are defined in [kmh, ms]
+speed.unit = kmh
+
+# the default speed for all way types which are not defined here
+speed.default = 30
+        
+# autobahn
+highway.motorway = 130
+highway.motorway_link = 70
+
+# bundesstrasse (germany)
+highway.trunk = 70
+highway.trunk_link = 65
+
+# linking bigger town
+highway.primary = 65
+highway.primary_link = 60
+
+# linking towns &amp;#43; villages
+highway.secondary = 60
+highway.secondary_link = 50
+
+#streets without middle line separation
+highway.tertiary = 50
+highway.tertiary_link = 40
+highway.residential = 30
+
+#special roads
+highway.living_street = 5
+highway.service = 20
+
+# unclassified roads
+highway.unclassified = 30
+highway.road = 20
+
+# forest tracks
+highway.track 15
+&lt;/code&gt;&lt;/pre&gt;
 </description>
     </item>
     
@@ -2298,8 +2433,8 @@
 function correctly. If you have read up on High Level Architecture before
 (have a look 
 &lt;a href=&#34;https://en.wikipedia.org/wiki/High_Level_Architecture&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and at the linked references) you might notice, that the
-previous flowchart does not completely reflect the proposed mechanisms. For instance, the &lt;code&gt;isTimeRegulating&lt;/code&gt; flag has no effect, when the &lt;code&gt;isTimeConstrained&lt;/code&gt;
-flag is not set.&lt;br&gt;
+previous flowchart does not completely reflect the proposed mechanisms. For instance, the &lt;code&gt;isTimeRegulating&lt;/code&gt; flag has no effect, when the
+&lt;code&gt;isTimeConstrained&lt;/code&gt; flag is not set.&lt;br&gt;
 So at some points you might stumble upon federates, which have their &lt;code&gt;isTimeConstrained&lt;/code&gt; and &lt;code&gt;isTimeRegulating&lt;/code&gt; flags set to different
 values as you would expect. An example of this is the &lt;code&gt;ApplicationAmbassador&lt;/code&gt;. One would expect it to be time-constrained as well as
 time-regulating. This isn&amp;rsquo;t the case though, because the &lt;code&gt;ApplicationAmbassador&lt;/code&gt; implements its own time- and event-management,
@@ -2350,24 +2485,29 @@
 &lt;h3 id=&#34;integration-into-eclipse-mosaic&#34;&gt;Integration into Eclipse MOSAIC&lt;/h3&gt;
 &lt;p&gt;The first step to integrate a new component is the extension of the configuration file &lt;code&gt;etc/defaults.xml&lt;/code&gt;.
 An example for a federate configuration can be found in following listing.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;federates&amp;gt;
-    [...]
-    &amp;lt;federate class=&amp;quot;com.dcaiti.vsimrti.fed.omnetpp.ambassador.OmnetppAmbassador&amp;quot;&amp;gt;
-        &amp;lt;id&amp;gt;omnetpp&amp;lt;/id&amp;gt;
-        &amp;lt;deploy&amp;gt;true&amp;lt;/deploy&amp;gt;
-        &amp;lt;start&amp;gt;true&amp;lt;/start&amp;gt;
-        &amp;lt;host&amp;gt;local&amp;lt;/host&amp;gt;
-        &amp;lt;port&amp;gt;4998&amp;lt;/port&amp;gt;
-        &amp;lt;config&amp;gt;omnetpp.ini&amp;lt;/config&amp;gt;
-        &amp;lt;subscriptions&amp;gt;
-            &amp;lt;subscription&amp;gt;VehicleRegistration&amp;lt;/subscription&amp;gt;
-            &amp;lt;subscription&amp;gt;RsuRegistration&amp;lt;/subscription&amp;gt;
-            &amp;lt;subscription&amp;gt;TrafficLightRegistration&amp;lt;/subscription&amp;gt;
-            [...]
-        &amp;lt;/subscriptions&amp;gt;&amp;gt;
-    &amp;lt;/federate&amp;gt;
-    [...]
-&amp;lt;/federates&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
+    ...
+    {
+        &amp;quot;id&amp;quot;: &amp;quot;omnetpp&amp;quot;,
+        &amp;quot;classname&amp;quot;: &amp;quot;org.eclipse.mosaic.fed.omnetpp.ambassador.OmnetppAmbassador&amp;quot;,
+        &amp;quot;configuration&amp;quot;: &amp;quot;omnetpp_config.json&amp;quot;,
+        &amp;quot;configurationDeployPath&amp;quot;: &amp;quot;omnetpp-federate/simulations&amp;quot;,
+        &amp;quot;priority&amp;quot;: 50,
+        &amp;quot;dockerImage&amp;quot;: &amp;quot;&amp;quot;,
+        &amp;quot;host&amp;quot;: &amp;quot;local&amp;quot;,
+        &amp;quot;port&amp;quot;: 4998,
+        &amp;quot;deploy&amp;quot;: true,
+        &amp;quot;start&amp;quot;: true,
+        &amp;quot;subscriptions&amp;quot;: [
+            &amp;quot;VehicleRegistration&amp;quot;,
+            &amp;quot;RsuRegistration&amp;quot;,
+            &amp;quot;TrafficLightRegistration&amp;quot;,
+            ...
+        ],
+        &amp;quot;javaClasspathEntries&amp;quot;: []
+    },
+    ...       
+]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;The following parameters are available:&lt;/p&gt;
 &lt;ul&gt;
@@ -2482,7 +2622,8 @@
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
 
 
-&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://sumo.dlr.de/wiki/Downloads&#34; download&gt;Download Eclipse SUMO&lt;/a&gt;
+&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://sumo.dlr.de/wiki/Downloads&#34; title=&#34;Download Eclipse SUMO&#34;&gt;&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;Download Eclipse SUMO&lt;/a&gt;
+
 &lt;p&gt;Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.&lt;/p&gt;
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
@@ -2560,7 +2701,7 @@
 The &amp;ldquo;Sent by&amp;rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.&lt;/p&gt;
 &lt;h2 id=&#34;mapping&#34;&gt;mapping&lt;/h2&gt;
 &lt;p&gt;All interactions in this package are concerned with adding/registering simulation-units to the simulation.
-While most of the introductions are handled by the &lt;code&gt;Mapping3&lt;/code&gt;- or &lt;code&gt;Application&lt;/code&gt;-ambassador, some of them
+While most of the introductions are handled by the &lt;code&gt;Mapping&lt;/code&gt;- or &lt;code&gt;Application&lt;/code&gt;-ambassador, some of them
 are handled by the ambassadors for the traffic simulators (see 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/lust&#34;&gt;LuST&lt;/a&gt;-scenario).
 In this case the interactions are used to initialize the scenario.&lt;/p&gt;
@@ -2576,32 +2717,37 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;VehicleRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;br&gt;&lt;code&gt;Application&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;br&gt;&lt;code&gt;Application&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;ChargingStationRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;RsuRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a roadside unit to the simulation.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;TmcRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for.&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
+&lt;/tr&gt;
+&lt;tr&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;ServerRegistration&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a server to the simulation. It holds a list of all applications.&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;TrafficLightRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;TrafficSignRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction indicates the introduction of a traffic sign.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
@@ -2629,7 +2775,7 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;RoutelessVehicleRegistration&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the &lt;code&gt;Application&lt;/code&gt;-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
@@ -2820,7 +2966,7 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;VehicleTypesInitialization&lt;/code&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;This interaction is required for each simulation.&lt;/strong&gt; It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier.&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping3&lt;/code&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;Mapping&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;VehicleRoutesInitialization&lt;/code&gt;&lt;/td&gt;
@@ -3023,17 +3169,29 @@
 to get more details on possible adaptions.&lt;br&gt;
 Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
 follow.&lt;/p&gt;
-&lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/images/steglitz_routes.mp4&#34;&gt;Watch scenario&lt;/a&gt;&lt;/p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+&lt;video controls &gt;
+  &lt;source src=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/images/steglitz_routes.mp4&#34; type=&#34;video/mp4&#34;&gt;
+&lt;/video&gt;
 &lt;h2 id=&#34;communication-simulators-cell-ns3-omnetpp-sns&#34;&gt;Communication Simulators (cell, ns3, omnetpp, sns)&lt;/h2&gt;
 &lt;p&gt;We won&amp;rsquo;t implement any functionality for the steglitz example here but rather have a look at the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &amp;lt;a href=&amp;quot;/docs/building_scenarios/files/barnim_mosaic_config.xml&amp;quot; download&lt;/p&gt;
-&lt;blockquote&gt;
-&lt;p&gt;&lt;code&gt;scenario_config.json&lt;/code&gt;
-.xml`&lt;/a&gt; of the Barnim scenario you can
-see where the communication simulators are activated.&lt;/p&gt;
-&lt;/blockquote&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
+communication simulators are activated:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
     &amp;quot;cell&amp;quot;: false,
     &amp;quot;omnetpp&amp;quot;: false,
@@ -3043,14 +3201,14 @@
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;Our 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials&#34;&gt;tutorials&lt;/a&gt; and 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#additional-examples&#34;&gt;additional examples&lt;/a&gt;
-demonstrate use cases for
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/additional_examples/&#34;&gt;additional examples&lt;/a&gt; demonstrate use cases for
 communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
 recommend copying the configuration-files for the simulator you are going to use from the 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim scenario&lt;/a&gt;. It
 contains the most complete configurations and is well maintained.&lt;br&gt;
 If you are an expert with one of the external network simulators (
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns3&lt;/a&gt;, 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns3&lt;/a&gt;,
+
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;) the Barnim scenario will also give
 you an overview on how to configure those.&lt;/p&gt;
 &lt;h2 id=&#34;other-simulators&#34;&gt;Other Simulators&lt;/h2&gt;
@@ -4084,7 +4242,7 @@
 to other federates. Furthermore, if the ambassador receives a request to change the route of a specific
 vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.&lt;/p&gt;
 &lt;h3 id=&#34;simulation-of-vehicles&#34;&gt;Simulation of Vehicles&lt;/h3&gt;
-&lt;p&gt;For each vehicle which has been defined in the mapping3 configuration, a &lt;code&gt;VehicleRegistration&lt;/code&gt; interaction is sent
+&lt;p&gt;For each vehicle which has been defined in the mapping configuration, a &lt;code&gt;VehicleRegistration&lt;/code&gt; interaction is sent
 to the &lt;code&gt;SumoAmbassador&lt;/code&gt; which adds those vehicles to the simulation via TraCI. Furthermore, vehicle
 data is subscribed which is updated with every simulation step. After each step of the simulation this
 data is bundled into a &lt;code&gt;VehicleInfo&lt;/code&gt; object which is distributed among other ambassadors within the
@@ -5237,7 +5395,7 @@
 oriented models of INETMANET have their focus more on the framing for communication and less on
 the real content. That means that content is often modeled with dummy payloads where only the length is
 of interest. In contrast, V2X applications which are simulated in the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator.md&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt;.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt;.
 Rely on the correct transmission of contents. Hence, the modules &lt;code&gt;VSimRTIReliableApp&lt;/code&gt; and &lt;code&gt;VSimRTIUnreliableApp&lt;/code&gt;
 are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager
 to send new messages to lower layers and forward messages themselves back to the ScenarioManager
@@ -5991,8 +6149,8 @@
 }
 &lt;/code&gt;&lt;/pre&gt;
 &lt;h3 id=&#34;server-configuration&#34;&gt;Server configuration&lt;/h3&gt;
-&lt;p&gt;Newer versions of MOSAIC will be able to support a new type of simulation units, called servers. Right now traffic management
-centers are handled in the same way as servers will be in the future. What differentiates servers from other units is, that
+&lt;p&gt;MOSAIC supports a type of simulation units, called servers. Traffic Management Centers are a specialised type of server.
+What differentiates servers from other units is, that
 they are treated as having no geographical location and instead are located &amp;ldquo;inside the internet.&amp;rdquo;. This concept omits prior shortcoming,
 where one would have to configure RSU&amp;rsquo;s as servers.&lt;br&gt;
 Servers are also configured in the &lt;code&gt;network.json&lt;/code&gt; as follows:&lt;/p&gt;
@@ -6055,6 +6213,12 @@
             &amp;quot;inductionLoops&amp;quot;: [ ],
             &amp;quot;laneAreaDetectors&amp;quot;: [ ]
         }
+    ],    
+    &amp;quot;servers&amp;quot;: [
+        {
+            &amp;quot;group&amp;quot;: &amp;quot;TestServer&amp;quot;,
+            &amp;quot;applications&amp;quot;: [ &amp;quot;TestApplication&amp;quot; ]
+        }
     ],
     ...
 }
@@ -6153,8 +6317,10 @@
 &lt;p&gt;In case of multicast the &lt;code&gt;lossProbability&lt;/code&gt; is used as packet loss rate. The value is factored into the delay calculation.
 In contrast to the unicast, just one transmission attempt is made for multicast.&lt;/p&gt;
 &lt;h3 id=&#34;operation&#34;&gt;Operation&lt;/h3&gt;
-&lt;p&gt;Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.&lt;/p&gt;
-&lt;p&gt;The Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.&lt;/p&gt;
+&lt;p&gt;Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled
+by the Geocaster.&lt;/p&gt;
+&lt;p&gt;The Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the
+Application Simulator.&lt;/p&gt;
 &lt;p&gt;It supports the following addressing and casting schemes.&lt;/p&gt;
 &lt;p&gt;
 &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-topocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellTopocast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is the normal unicast, where the Geocaster simply resolves
@@ -6171,6 +6337,16 @@
     </item>
     
     <item>
+      <title>Java Docs</title>
+      <link>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</link>
+      <pubDate>Tue, 30 Jun 2020 00:00:00 +0100</pubDate>
+      <guid>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</guid>
+      <description>&lt;!-- Java Docs need to be copied into /public/java_docs. --&gt;
+&lt;iframe src=&#34;https://www.eclipse.org/mosaic/mosaic/java_docs/&#34; style=&#34;width: 100%; height: calc(100vh - 230px);&#34;&gt;&lt;/iframe&gt;
+</description>
+    </item>
+    
+    <item>
       <title>Environment Simulator</title>
       <link>https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
diff --git a/news/index.html b/news/index.html
index 9e18c64..71fcca9 100644
--- a/news/index.html
+++ b/news/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/news/">
-  <meta property="og:title" content="News | Eclipse MOSAIC">
+  <meta property="og:title" content="News | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="News"><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>News | Eclipse MOSAIC</title>
+  <title>News | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/post/eclipse-mosaic/index.html b/post/eclipse-mosaic/index.html
index 61ddb6a..e9e5b38 100644
--- a/post/eclipse-mosaic/index.html
+++ b/post/eclipse-mosaic/index.html
@@ -238,9 +238,9 @@
   
   <meta property="twitter:card" content="summary_large_image">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/post/eclipse-mosaic/">
-  <meta property="og:title" content="Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC | Eclipse MOSAIC">
+  <meta property="og:title" content="Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source."><meta property="og:image" content="https://www.eclipse.org/mosaic/post/eclipse-mosaic/featured.jpg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/post/eclipse-mosaic/featured.jpg"><meta property="og:locale" content="en-us">
   
@@ -289,7 +289,7 @@
   
   "publisher": {
     "@type": "Organization",
-    "name": "Eclipse MOSAIC",
+    "name": "Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility",
     "logo": {
       "@type": "ImageObject",
       "url": "https://www.eclipse.org/mosaic/images/logo.svg"
@@ -313,7 +313,7 @@
 
 
 
-  <title>Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC | Eclipse MOSAIC</title>
+  <title>Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -369,7 +369,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -382,7 +382,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/post/index.html b/post/index.html
index 3748972..278d251 100644
--- a/post/index.html
+++ b/post/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/post/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/post/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/post/">
-  <meta property="og:title" content="Articles | Eclipse MOSAIC">
+  <meta property="og:title" content="Articles | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Articles | Eclipse MOSAIC</title>
+  <title>Articles | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/post/index.xml b/post/index.xml
index bd7358b..10485c1 100644
--- a/post/index.xml
+++ b/post/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Articles | Eclipse MOSAIC</title>
+    <title>Articles | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/post/</link>
       <atom:link href="https://www.eclipse.org/mosaic/post/index.xml" rel="self" type="application/rss+xml" />
     <description>Articles</description>
diff --git a/post/release-20-0/index.html b/post/release-20-0/index.html
index cd68b21..135e910 100644
--- a/post/release-20-0/index.html
+++ b/post/release-20-0/index.html
@@ -238,9 +238,9 @@
   
   <meta property="twitter:card" content="summary_large_image">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/post/release-20-0/">
-  <meta property="og:title" content="First release of Eclipse MOSAIC | Eclipse MOSAIC">
+  <meta property="og:title" content="First release of Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions."><meta property="og:image" content="https://www.eclipse.org/mosaic/post/release-20-0/featured.jpg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/post/release-20-0/featured.jpg"><meta property="og:locale" content="en-us">
   
@@ -289,7 +289,7 @@
   
   "publisher": {
     "@type": "Organization",
-    "name": "Eclipse MOSAIC",
+    "name": "Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility",
     "logo": {
       "@type": "ImageObject",
       "url": "https://www.eclipse.org/mosaic/images/logo.svg"
@@ -313,7 +313,7 @@
 
 
 
-  <title>First release of Eclipse MOSAIC | Eclipse MOSAIC</title>
+  <title>First release of Eclipse MOSAIC | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -369,7 +369,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -382,7 +382,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/publication_types/index.html b/publication_types/index.html
index 96dfe39..30b8f38 100644
--- a/publication_types/index.html
+++ b/publication_types/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/publication_types/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/publication_types/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/publication_types/">
-  <meta property="og:title" content="Publication_types | Eclipse MOSAIC">
+  <meta property="og:title" content="Publication_types | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Publication_types | Eclipse MOSAIC</title>
+  <title>Publication_types | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/publication_types/index.xml b/publication_types/index.xml
index 9230e93..7a0a270 100644
--- a/publication_types/index.xml
+++ b/publication_types/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Publication_types | Eclipse MOSAIC</title>
+    <title>Publication_types | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/publication_types/</link>
       <atom:link href="https://www.eclipse.org/mosaic/publication_types/index.xml" rel="self" type="application/rss+xml" />
     <description>Publication_types</description>
diff --git a/publications/index.html b/publications/index.html
index 2312b5f..f6c629e 100644
--- a/publications/index.html
+++ b/publications/index.html
@@ -239,9 +239,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/publications/">
-  <meta property="og:title" content="Publications | Eclipse MOSAIC">
+  <meta property="og:title" content="Publications | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="List of publications and thesis related to Eclipse MOSAIC."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -267,7 +267,7 @@
 
 
 
-  <title>Publications | Eclipse MOSAIC</title>
+  <title>Publications | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -323,7 +323,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -336,7 +336,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/sitemap.xml b/sitemap.xml
index 1cc629c..61673f4 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -170,6 +170,11 @@
   </url>
   
   <url>
+    <loc>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</loc>
+    <lastmod>2020-06-30T00:00:00+01:00</lastmod>
+  </url>
+  
+  <url>
     <loc>https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/</loc>
     <lastmod>2019-05-05T00:00:00+01:00</lastmod>
   </url>
diff --git a/tags/index.html b/tags/index.html
index ee30fe0..53a2c49 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tags/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tags/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tags/">
-  <meta property="og:title" content="Tags | Eclipse MOSAIC">
+  <meta property="og:title" content="Tags | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Tags | Eclipse MOSAIC</title>
+  <title>Tags | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tags/index.xml b/tags/index.xml
index b41bc6b..eeb4eeb 100644
--- a/tags/index.xml
+++ b/tags/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Tags | Eclipse MOSAIC</title>
+    <title>Tags | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tags/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tags/index.xml" rel="self" type="application/rss+xml" />
     <description>Tags</description>
diff --git a/tutorials/additional_examples/index.html b/tutorials/additional_examples/index.html
index 9c96e19..07e6452 100644
--- a/tutorials/additional_examples/index.html
+++ b/tutorials/additional_examples/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/additional_examples/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/additional_examples/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/additional_examples/">
-  <meta property="og:title" content=" | Eclipse MOSAIC">
+  <meta property="og:title" content=" | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title> | Eclipse MOSAIC</title>
+  <title> | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/additional_examples/index.xml b/tutorials/additional_examples/index.xml
index fed429a..4091fa1 100644
--- a/tutorials/additional_examples/index.xml
+++ b/tutorials/additional_examples/index.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Eclipse MOSAIC</title>
+    <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/additional_examples/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/additional_examples/index.xml" rel="self" type="application/rss+xml" />
-    <description>Eclipse MOSAIC</description>
+    <description>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</description>
     <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Sun, 05 May 2019 00:00:00 +0100</lastBuildDate>
     <image>
       <url>https://www.eclipse.org/mosaic/images/logo.svg</url>
-      <title>Eclipse MOSAIC</title>
+      <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
       <link>https://www.eclipse.org/mosaic/tutorials/additional_examples/</link>
     </image>
     
diff --git a/tutorials/barnim_advanced/index.html b/tutorials/barnim_advanced/index.html
index 6636508..3b77593 100644
--- a/tutorials/barnim_advanced/index.html
+++ b/tutorials/barnim_advanced/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/barnim_advanced/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/barnim_advanced/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/barnim_advanced/">
-  <meta property="og:title" content="Barnim Advanced | Eclipse MOSAIC">
+  <meta property="og:title" content="Barnim Advanced | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Barnim Advanced | Eclipse MOSAIC</title>
+  <title>Barnim Advanced | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/barnim_advanced/index.xml b/tutorials/barnim_advanced/index.xml
index 7021a4a..48ef8fb 100644
--- a/tutorials/barnim_advanced/index.xml
+++ b/tutorials/barnim_advanced/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Barnim Advanced | Eclipse MOSAIC</title>
+    <title>Barnim Advanced | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/barnim_advanced/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/barnim_advanced/index.xml" rel="self" type="application/rss+xml" />
     <description>Barnim Advanced</description>
diff --git a/tutorials/barnim_basic/index.html b/tutorials/barnim_basic/index.html
index 0791679..70449a2 100644
--- a/tutorials/barnim_basic/index.html
+++ b/tutorials/barnim_basic/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/barnim_basic/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/barnim_basic/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/barnim_basic/">
-  <meta property="og:title" content="Barnim Basic | Eclipse MOSAIC">
+  <meta property="og:title" content="Barnim Basic | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Barnim Basic | Eclipse MOSAIC</title>
+  <title>Barnim Basic | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/barnim_basic/index.xml b/tutorials/barnim_basic/index.xml
index 7fe708e..57aa7fa 100644
--- a/tutorials/barnim_basic/index.xml
+++ b/tutorials/barnim_basic/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Barnim Basic | Eclipse MOSAIC</title>
+    <title>Barnim Basic | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/barnim_basic/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/barnim_basic/index.xml" rel="self" type="application/rss+xml" />
     <description>Barnim Basic</description>
diff --git a/tutorials/create_new_scenario/files/ScenarioConvertFunctions.txt b/tutorials/create_new_scenario/files/ScenarioConvertFunctions.txt
index 7beda2a..b445548 100644
--- a/tutorials/create_new_scenario/files/ScenarioConvertFunctions.txt
+++ b/tutorials/create_new_scenario/files/ScenarioConvertFunctions.txt
@@ -42,7 +42,7 @@
  -r,--route-file <PATH>                    Path to the sumo *.rou.xml for importing route definitions (--sumo2db)
  -s,--sumo-prefix <STRING>                 Prefix for the generated sumo files  (uses database name when not defined).
  -f,--force                                Force overwrite of existing files instead of incrementing file names.
- -m,--mapping-file <PATH>                  Uses the given mapping3 configuration to export existing vehicleTypes and
+ -m,--mapping-file <PATH>                  Uses the given mapping configuration to export existing vehicleTypes and
                                            vehicles data to *.rou.xml (with --export-routes).
     --import-lat <DOUBLE>                  Center latitude of imported region to project coordinates.
     --import-lon <DOUBLE>                  Center longitude of imported region to project coordinates.
diff --git a/tutorials/create_new_scenario/files/barnim_mosaic_config.xml b/tutorials/create_new_scenario/files/barnim_mosaic_config.xml
index 54cb111..35f34a6 100644
--- a/tutorials/create_new_scenario/files/barnim_mosaic_config.xml
+++ b/tutorials/create_new_scenario/files/barnim_mosaic_config.xml
@@ -54,7 +54,7 @@
         <federate id="battery" active="true"/>
         <federate id="chargingstation" active="false"/>
         <!-- Mapping -->
-        <federate id="mapping3" active="true"/>
+        <federate id="mapping" active="true"/>
         <!-- Visualization -->
         <federate id="visualizer" active="true"/>
     </federates>
diff --git a/tutorials/create_new_scenario/index.html b/tutorials/create_new_scenario/index.html
index 4acfffa..59eab82 100644
--- a/tutorials/create_new_scenario/index.html
+++ b/tutorials/create_new_scenario/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/create_new_scenario/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/create_new_scenario/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/create_new_scenario/">
-  <meta property="og:title" content=" | Eclipse MOSAIC">
+  <meta property="og:title" content=" | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title> | Eclipse MOSAIC</title>
+  <title> | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/create_new_scenario/index.xml b/tutorials/create_new_scenario/index.xml
index 6f76ea2..29bd5e2 100644
--- a/tutorials/create_new_scenario/index.xml
+++ b/tutorials/create_new_scenario/index.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Eclipse MOSAIC</title>
+    <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/create_new_scenario/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/create_new_scenario/index.xml" rel="self" type="application/rss+xml" />
-    <description>Eclipse MOSAIC</description>
+    <description>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</description>
     <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language>
     <image>
       <url>https://www.eclipse.org/mosaic/images/logo.svg</url>
-      <title>Eclipse MOSAIC</title>
+      <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
       <link>https://www.eclipse.org/mosaic/tutorials/create_new_scenario/</link>
     </image>
     
diff --git a/tutorials/index.html b/tutorials/index.html
index 4ec2274..06a4e6b 100644
--- a/tutorials/index.html
+++ b/tutorials/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/">
-  <meta property="og:title" content="Eclipse MOSAIC Tutorials | Eclipse MOSAIC">
+  <meta property="og:title" content="Eclipse MOSAIC Tutorials | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Eclipse MOSAIC Tutorials | Eclipse MOSAIC</title>
+  <title>Eclipse MOSAIC Tutorials | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/index.xml b/tutorials/index.xml
index 60e0a48..d1678e3 100644
--- a/tutorials/index.xml
+++ b/tutorials/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Eclipse MOSAIC Tutorials | Eclipse MOSAIC</title>
+    <title>Eclipse MOSAIC Tutorials | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/index.xml" rel="self" type="application/rss+xml" />
     <description>Eclipse MOSAIC Tutorials</description>
diff --git a/tutorials/lust/index.html b/tutorials/lust/index.html
index cdd80d6..1fd29b8 100644
--- a/tutorials/lust/index.html
+++ b/tutorials/lust/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/lust/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/lust/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/lust/">
-  <meta property="og:title" content=" | Eclipse MOSAIC">
+  <meta property="og:title" content=" | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title> | Eclipse MOSAIC</title>
+  <title> | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/lust/index.xml b/tutorials/lust/index.xml
index b966029..8bacb77 100644
--- a/tutorials/lust/index.xml
+++ b/tutorials/lust/index.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Eclipse MOSAIC</title>
+    <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/lust/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/lust/index.xml" rel="self" type="application/rss+xml" />
-    <description>Eclipse MOSAIC</description>
+    <description>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</description>
     <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Sun, 05 May 2019 00:00:00 +0100</lastBuildDate>
     <image>
       <url>https://www.eclipse.org/mosaic/images/logo.svg</url>
-      <title>Eclipse MOSAIC</title>
+      <title>Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
       <link>https://www.eclipse.org/mosaic/tutorials/lust/</link>
     </image>
     
diff --git a/tutorials/tiergarten/index.html b/tutorials/tiergarten/index.html
index 0b15c3f..6be2d7b 100644
--- a/tutorials/tiergarten/index.html
+++ b/tutorials/tiergarten/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/tiergarten/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/tiergarten/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/tiergarten/">
-  <meta property="og:title" content="Tiergarten | Eclipse MOSAIC">
+  <meta property="og:title" content="Tiergarten | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Tiergarten | Eclipse MOSAIC</title>
+  <title>Tiergarten | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
@@ -603,7 +603,7 @@
 In this tutorial, we will assign applications to an RSU that is placed along the road (the red symbol in the top
 picture) and to the vehicles. In order to do this the following steps are necessary:</p>
 <ol>
-<li>Navigate to the <code>mapping3</code> folder of the Tiergarten tutorial scenario.</li>
+<li>Navigate to the <code>mapping</code> folder of the Tiergarten tutorial scenario.</li>
 <li>Edit the <code>mapping_config.json</code> to let it point to the correct classes
 for your application, define prototypes and to add entities to the simulation.</li>
 </ol>
@@ -688,7 +688,7 @@
 the communication modules (WLANModule or CellModule) need to be activated. For example, activating the
 WLAN module can be achieved with the following code snipped:</p>
 <pre><code class="language-java">@Override
-public void setup() {
+public void onStartup() {
     getLog().infoSimTime(this, &quot;Initialize application&quot;);
     getOperatingSystem().getAdHocModule().enable(
         new AdHocModuleConfiguration().addRadio().channel(AdHocChannel.CCH).power(50).create()
@@ -768,7 +768,7 @@
 </ul>
 <h4 id="application-setup">Application Setup</h4>
 <pre><code class="language-java">@Override
-public void setUp() {
+public void onStartup() {
     getLog().infoSimTime(this, &quot;Initialize application&quot;);
     getOperatingSystem().getAdHocModule().enable(
         new AdHocModuleConfiguration().addRadio().channel(AdHocChannel.CCH).power(50).create()
diff --git a/tutorials/tiergarten/index.xml b/tutorials/tiergarten/index.xml
index c94ec29..3283882 100644
--- a/tutorials/tiergarten/index.xml
+++ b/tutorials/tiergarten/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Tiergarten | Eclipse MOSAIC</title>
+    <title>Tiergarten | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/tiergarten/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/tiergarten/index.xml" rel="self" type="application/rss+xml" />
     <description>Tiergarten</description>
diff --git a/tutorials/traffic_lights/index.html b/tutorials/traffic_lights/index.html
index fc403c3..31922c9 100644
--- a/tutorials/traffic_lights/index.html
+++ b/tutorials/traffic_lights/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/traffic_lights/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/traffic_lights/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/traffic_lights/">
-  <meta property="og:title" content="Traffic Lights | Eclipse MOSAIC">
+  <meta property="og:title" content="Traffic Lights | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Traffic Lights | Eclipse MOSAIC</title>
+  <title>Traffic Lights | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/traffic_lights/index.xml b/tutorials/traffic_lights/index.xml
index d659375..e686404 100644
--- a/tutorials/traffic_lights/index.xml
+++ b/tutorials/traffic_lights/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Traffic Lights | Eclipse MOSAIC</title>
+    <title>Traffic Lights | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/traffic_lights/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/traffic_lights/index.xml" rel="self" type="application/rss+xml" />
     <description>Traffic Lights</description>
diff --git a/tutorials/traffic_management/index.html b/tutorials/traffic_management/index.html
index fee95c7..bae6e26 100644
--- a/tutorials/traffic_management/index.html
+++ b/tutorials/traffic_management/index.html
@@ -219,7 +219,7 @@
   
 
   
-  <link rel="alternate" href="/mosaic/tutorials/traffic_management/index.xml" type="application/rss+xml" title="Eclipse MOSAIC">
+  <link rel="alternate" href="/mosaic/tutorials/traffic_management/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
@@ -241,9 +241,9 @@
   
   <meta property="twitter:card" content="summary">
   
-  <meta property="og:site_name" content="Eclipse MOSAIC">
+  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/tutorials/traffic_management/">
-  <meta property="og:title" content="Traffic Management | Eclipse MOSAIC">
+  <meta property="og:title" content="Traffic Management | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -264,7 +264,7 @@
 
 
 
-  <title>Traffic Management | Eclipse MOSAIC</title>
+  <title>Traffic Management | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -320,7 +320,7 @@
   <div class="container">
 
     <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
 
 
@@ -333,7 +333,7 @@
 
     
     <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
+      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
     </div>
     
 
diff --git a/tutorials/traffic_management/index.xml b/tutorials/traffic_management/index.xml
index df0a2a5..91484d1 100644
--- a/tutorials/traffic_management/index.xml
+++ b/tutorials/traffic_management/index.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Traffic Management | Eclipse MOSAIC</title>
+    <title>Traffic Management | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
     <link>https://www.eclipse.org/mosaic/tutorials/traffic_management/</link>
       <atom:link href="https://www.eclipse.org/mosaic/tutorials/traffic_management/index.xml" rel="self" type="application/rss+xml" />
     <description>Traffic Management</description>