diff --git a/package-lock.json b/package-lock.json
index 24f209cd454a02f2f91823cb49213ab304b32a4a..c4d4cc41cc50ccf1162bf3ddb4ca9652f2cfbaf3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "medsurf-draw",
-  "version": "1.0.19",
+  "version": "1.0.23",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -30,16 +30,16 @@
       }
     },
     "@babel/core": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz",
-      "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==",
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz",
+      "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==",
       "requires": {
         "@babel/code-frame": "7.8.3",
-        "@babel/generator": "7.8.3",
-        "@babel/helpers": "7.8.3",
-        "@babel/parser": "7.8.3",
+        "@babel/generator": "7.8.4",
+        "@babel/helpers": "7.8.4",
+        "@babel/parser": "7.8.4",
         "@babel/template": "7.8.3",
-        "@babel/traverse": "7.8.3",
+        "@babel/traverse": "7.8.4",
         "@babel/types": "7.8.3",
         "convert-source-map": "1.7.0",
         "debug": "4.1.1",
@@ -85,9 +85,9 @@
       }
     },
     "@babel/generator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
-      "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz",
+      "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==",
       "requires": {
         "@babel/types": "7.8.3",
         "jsesc": "2.5.2",
@@ -129,12 +129,12 @@
       }
     },
     "@babel/helpers": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz",
-      "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==",
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz",
+      "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==",
       "requires": {
         "@babel/template": "7.8.3",
-        "@babel/traverse": "7.8.3",
+        "@babel/traverse": "7.8.4",
         "@babel/types": "7.8.3"
       }
     },
@@ -149,9 +149,9 @@
       }
     },
     "@babel/parser": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
-      "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ=="
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz",
+      "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw=="
     },
     "@babel/template": {
       "version": "7.8.3",
@@ -159,20 +159,20 @@
       "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
       "requires": {
         "@babel/code-frame": "7.8.3",
-        "@babel/parser": "7.8.3",
+        "@babel/parser": "7.8.4",
         "@babel/types": "7.8.3"
       }
     },
     "@babel/traverse": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
-      "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz",
+      "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==",
       "requires": {
         "@babel/code-frame": "7.8.3",
-        "@babel/generator": "7.8.3",
+        "@babel/generator": "7.8.4",
         "@babel/helper-function-name": "7.8.3",
         "@babel/helper-split-export-declaration": "7.8.3",
-        "@babel/parser": "7.8.3",
+        "@babel/parser": "7.8.4",
         "@babel/types": "7.8.3",
         "debug": "4.1.1",
         "globals": "11.12.0",
@@ -338,447 +338,447 @@
       }
     },
     "@pixi/accessibility": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.2.0.tgz",
-      "integrity": "sha512-IXnCy9YmzXl9/rMiXOzgFpP7onW0YNSnVQtFotonCEPd2azM/1p3Fy7wRTcpfOJm/JsMZRbnDeE/wB9Shg9/QQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.2.1.tgz",
+      "integrity": "sha512-X6pu50NDdApR7ppGGpB6LzZFVUqnrfLmpNYMVHtzmlMGc0JnpwI9NYTTjGrMpBtkra8Y8HN4aGT4Sa+cfc1BaA==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/app": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/app/-/app-5.2.0.tgz",
-      "integrity": "sha512-5rhjAGPruzC3w6+knySIWk4II1Td8Fw0LVfg1K48BRXI1mLXCrZ3tJb6hdFuBPhgeIDz1tUwecJ4KfkJOWgqPg==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/app/-/app-5.2.1.tgz",
+      "integrity": "sha512-KPZ6fa324BspRTumU1Cdo2QANIu01COLcKBa3CpofHHXc5ayRDQDFiJnMpKMPYMDIPfKZeNt5aVwW0yVFB3iNQ==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1"
       }
     },
     "@pixi/canvas-display": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-display/-/canvas-display-5.2.0.tgz",
-      "integrity": "sha512-sUzy0f1Lh2AFACT0FK+xHEM9d6Q2Yq5Mp8d7DHwZQ4/xwxkWY5C5EtoYsrM2rNYK27vSZZGcu+iznJx1C24aFA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-display/-/canvas-display-5.2.1.tgz",
+      "integrity": "sha512-jignAHlBt0Gus7rsXFfbWPMM29ilsjfAvG/NzNFw5i2yUCPJcmq3/V5MGrO3y5TK2GE9VgU876DwC9KLCKnwwQ==",
       "requires": {
-        "@pixi/display": "5.2.0"
+        "@pixi/display": "5.2.1"
       }
     },
     "@pixi/canvas-extract": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-extract/-/canvas-extract-5.2.0.tgz",
-      "integrity": "sha512-J33k/yVSvhZdV9HxoET81xsFN1etup5XnMTPSYK/9cb6Aq35M5dVIKXSt08OLFFOW5V9tJcM7s8YybUdK7P/iQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-extract/-/canvas-extract-5.2.1.tgz",
+      "integrity": "sha512-834V/vWARaWx4gj3cNOcdae/DaJQjqnOGREWFRN7ziSSYZ7hNMPCUgC/Oi9XjwXjtrLBLgT+SUw9GZSQ/BxoHA==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/canvas-graphics": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-graphics/-/canvas-graphics-5.2.0.tgz",
-      "integrity": "sha512-oOAi363F4IuIhGVbSQQnZ23Uhy2712lHYdSrjBCbIqM81kBceF0PpjpilbZH3/KbJJy/HTzmWPSU0f5EG59CbQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-graphics/-/canvas-graphics-5.2.1.tgz",
+      "integrity": "sha512-CT66icx4t0EFpUsPQ80alq4F+zecqgaqQ+LZpbN/HmHSyvaG5Gdt0+XJjruZoMZ6eJ1c2tiY9eY7eCdlXarzsA==",
       "requires": {
-        "@pixi/canvas-renderer": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/graphics": "5.2.0",
-        "@pixi/math": "5.2.0"
+        "@pixi/canvas-renderer": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/graphics": "5.2.1",
+        "@pixi/math": "5.2.1"
       }
     },
     "@pixi/canvas-mesh": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-mesh/-/canvas-mesh-5.2.0.tgz",
-      "integrity": "sha512-+8NCWRpIRVT2V5K+jR8O42t8KHn+7Xyay5osxfj+cK+tXXrnCiMgI0Gfdu+tXq+QhTkZvlLm1w5Mcf8xV9OQuQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-mesh/-/canvas-mesh-5.2.1.tgz",
+      "integrity": "sha512-O20YcKMN2Z17bLjegcujClFFnBnwbAWhwL7V0TPFuYL22ZzFFW8g+S+zFxZYO5Uk6eCJ3eLb8lvB79udcUUSTw==",
       "requires": {
-        "@pixi/canvas-renderer": "5.2.0",
-        "@pixi/constants": "5.2.0",
-        "@pixi/mesh": "5.2.0",
-        "@pixi/mesh-extras": "5.2.0",
-        "@pixi/settings": "5.2.0"
+        "@pixi/canvas-renderer": "5.2.1",
+        "@pixi/constants": "5.2.1",
+        "@pixi/mesh": "5.2.1",
+        "@pixi/mesh-extras": "5.2.1",
+        "@pixi/settings": "5.2.1"
       }
     },
     "@pixi/canvas-particles": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-particles/-/canvas-particles-5.2.0.tgz",
-      "integrity": "sha512-piJWi4LMfS6zjf8Ihoj/3JpXe0yO2HWG4vQi08JmJ3ZuUH+BYVnyi79rDoYB6pDXe4wkc3CZRsKgZZk5+AucjQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-particles/-/canvas-particles-5.2.1.tgz",
+      "integrity": "sha512-HpBRT+wjG/GFCrEOCIclbkJVMRaJjyvqozrEIDbljXXFx7TTP1EcBxVNQKrvaCW8xgC+rLJM6CSEgbl/7LUVXw==",
       "requires": {
-        "@pixi/particles": "5.2.0"
+        "@pixi/particles": "5.2.1"
       }
     },
     "@pixi/canvas-prepare": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-prepare/-/canvas-prepare-5.2.0.tgz",
-      "integrity": "sha512-mTK6wqS2QGp1Lfua1ziO7ur4xTqSS4w8bOf4bEWOJ7ZjxD4KROF0C0IPtOcz8ekaN7ikLate4rHLE3A/tv6TQQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-prepare/-/canvas-prepare-5.2.1.tgz",
+      "integrity": "sha512-aVdBeLAqtupsmDU9J4fUVZszrcS2/JNJX+OPc8zshwrbd/NP3JyShIJs5ZZnHjs4+R3e4DWyVoaJ7l1I3HW4CA==",
       "requires": {
-        "@pixi/canvas-renderer": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/prepare": "5.2.0"
+        "@pixi/canvas-renderer": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/prepare": "5.2.1"
       }
     },
     "@pixi/canvas-renderer": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-renderer/-/canvas-renderer-5.2.0.tgz",
-      "integrity": "sha512-K2fWCJFYgwmXYhEc2tyBbE+9Pc3WFkidYCeveS22fvlH2LeiF0IrRfisFZmor1brp4W9rLPPtqrmWfzi9hEC3g==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-renderer/-/canvas-renderer-5.2.1.tgz",
+      "integrity": "sha512-tfjKQVzO8fFq7u/nfX+6kDiogbaoT48L4zIOO6DfvPA/r9Hii+eywn8mZUwOEcrhg8p0ip1uAPxDLHT7uZJxmg==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/canvas-sprite": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-sprite/-/canvas-sprite-5.2.0.tgz",
-      "integrity": "sha512-3JTkC1dClqnRXF6GZfEL0X6CAEL7mfN/CDAfUO2QdS+qXH+ZJt9gaTDxGzbHcD3WumPDWqzKJpFVYp5H66ALTA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-sprite/-/canvas-sprite-5.2.1.tgz",
+      "integrity": "sha512-7S3dMyFOOv41dDhRu4icy6QPohzO5M62VzDn2O0xcIbhfQ8ETq4MVuwWN5USXOuUfzYPH6D9tS+JOvZPt1u/iA==",
       "requires": {
-        "@pixi/canvas-renderer": "5.2.0",
-        "@pixi/constants": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/canvas-renderer": "5.2.1",
+        "@pixi/constants": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/canvas-sprite-tiling": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-sprite-tiling/-/canvas-sprite-tiling-5.2.0.tgz",
-      "integrity": "sha512-9CteI6254v6yVgsNJCiI7bm8Bwhc1ptyWj6N6gbGSNsLw1VR7Ot3YWo4hkofKC0O8BuwYLVFm8qAMilv/3aGOw==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-sprite-tiling/-/canvas-sprite-tiling-5.2.1.tgz",
+      "integrity": "sha512-+D0C1ZB4gTHoMRxbR+g6M3qLOXdjIKv6IkNQewmPDPrJb/gCMSIeBRVomkdBqZWwYPd/UnZcrs/sF6Q06tITHQ==",
       "requires": {
-        "@pixi/canvas-renderer": "5.2.0",
-        "@pixi/canvas-sprite": "5.2.0",
-        "@pixi/sprite-tiling": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/canvas-renderer": "5.2.1",
+        "@pixi/canvas-sprite": "5.2.1",
+        "@pixi/sprite-tiling": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/canvas-text": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/canvas-text/-/canvas-text-5.2.0.tgz",
-      "integrity": "sha512-QHi2qFUUfYk66f8x+UXcl9rX6EEE4+6OJQjx8ublM3kgZpUKjgdSvpQ1UiOGuz3IhpQInZyxDxKz8gMafrzFUA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/canvas-text/-/canvas-text-5.2.1.tgz",
+      "integrity": "sha512-zmqxUmrpiO8SnT2EYzUf2OijGTQ0JxQUjnCklddSOnn2iEwACrw1nxHYJG0StieTJFjrP5nuAMixzaI0+j/zSQ==",
       "requires": {
-        "@pixi/sprite": "5.2.0",
-        "@pixi/text": "5.2.0"
+        "@pixi/sprite": "5.2.1",
+        "@pixi/text": "5.2.1"
       }
     },
     "@pixi/constants": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.2.0.tgz",
-      "integrity": "sha512-dXwzkKAvgpvOJmDBe9OQiE+HPp4uMIL/3ijHlyW0fgMqDPhtQtFcSUdSUAoFwb23Uaq56j1ejuEmly8LehJ0aQ=="
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.2.1.tgz",
+      "integrity": "sha512-RYeP1Q5R6qVyVioM00/fhGXFAhJjD+mJW4+TOiNZQASKP0t6wF51yuIfROEIxf5a6I6INOB3aSit1jUkSpYgTA=="
     },
     "@pixi/core": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.2.0.tgz",
-      "integrity": "sha512-h8UuVWHfbWVGEO3a4SQS4vk70LSFMUMPKCvVpPq/3LtIUgPVDZO3tGL4O2jFteKwbmWNIMDCpDmBMu3XlqPlNQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.2.1.tgz",
+      "integrity": "sha512-kREyWm87C4xZtdlw+otX+U/xJZhDUQyY/UHirbBwkO0LeAfrJm3qNyMfFZTcyW4PvmF16989IjvjGAWSeZSIQw==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/runner": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/ticker": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/runner": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/ticker": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/display": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.2.0.tgz",
-      "integrity": "sha512-P+exW4aI7eyqhdmi0M3HmKJI+XzDYNYAiEsKMUyyONwbHYSVdjQF5hzPuvjUYotTNZ1stCWbf0457cNNSPLOzQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.2.1.tgz",
+      "integrity": "sha512-tr++p14im8KBzZHxMtM/E2Q7FWHYp9bjjDl+rA1b91HSN/vUJu1OlkUoCN4x7TyfkVtDPnrglhZykf7d93Nl9A==",
       "requires": {
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/extract": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-5.2.0.tgz",
-      "integrity": "sha512-LUDsB6z+gkSYcS8urr/JjdpLlf/z3mAjpMJDOZlcxCdPXdayVka2ruNnrWb4dvf9nV9Wg7T8v1IOFGOWpOHEdQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-5.2.1.tgz",
+      "integrity": "sha512-Ol5ypGFNIj4nfp8zO5F//nwi7YilyP+esul3nDgPQdemTY5aothnXIWxdglqT54Glz/jcRd0z7UHL5tiiwV9JQ==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/filter-alpha": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.2.0.tgz",
-      "integrity": "sha512-Jv/eqSt6zmKr9oGoi4UgUWA/pgxhyBSGMtUWMHiwuqjkXWl4Em4bC5l0f5GUX85xqMCRLwvOeqOH+fBE9fKadw==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.2.1.tgz",
+      "integrity": "sha512-gqd8AQfej3HBdAXuRFku8HZx8pys7Klt5NJx78Du8ONyFnSrSSbZCgzctrqyrY396hXDkkcLyIL/Pi1sjN9pnw==",
       "requires": {
-        "@pixi/core": "5.2.0"
+        "@pixi/core": "5.2.1"
       }
     },
     "@pixi/filter-blur": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.2.0.tgz",
-      "integrity": "sha512-052qyY+X3HMEvHdorqXIbe+iODK0Sj3j8goZMvOL2qATW6bDBGRuwrO2rGZ70BnmGgrbIrXzDVemwo9uLWEZSA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.2.1.tgz",
+      "integrity": "sha512-9TkJ3qpJAOvYiJILV7Eo2olb0tuEognpIQYGC0WDAwh/hLJAlp4xXCe1ZZyoTM75gNEgiQgzmbOIqx8Se5yI4w==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/settings": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/settings": "5.2.1"
       }
     },
     "@pixi/filter-color-matrix": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.2.0.tgz",
-      "integrity": "sha512-wtPzz+2NtP9zDW9cFn/lTryf97/DYwka4yi9A+sMCteoATsrZJCKz0zzPV5AORKv0hpCfu9wGYTISItOC8mBKw==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.2.1.tgz",
+      "integrity": "sha512-alxpRXa7VVB9fcOq41AowH3/m/SdNmhKzoIdV5xQYfeLF+qRjJTP4DjiW0QuSqlY/zydSKLOEPj+hG3/onX/Qg==",
       "requires": {
-        "@pixi/core": "5.2.0"
+        "@pixi/core": "5.2.1"
       }
     },
     "@pixi/filter-displacement": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.2.0.tgz",
-      "integrity": "sha512-489KUlNF4ZmHZPNmI2X77cE95sfbvvw5NASeNXKmbCn5xi2gPSxiPMTv4XUTdhdOKxNcy81NFEQicG21eW335Q==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.2.1.tgz",
+      "integrity": "sha512-WGO9Qv/+jLsOLLN0TZV8Jx8Il4/GChXGYZTQkF0YfAHYt/wx9OeFjR38KDVLzvIcRZhDuTZ4SUyfxkjdXPaBZQ==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/math": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/math": "5.2.1"
       }
     },
     "@pixi/filter-fxaa": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.2.0.tgz",
-      "integrity": "sha512-rlhC65BALzQAVBEXYzr8bKqyhZIWLco+VWJ7Fs8D3bJCutyu6xX6d7XDAqQW5SmJCNrIdaKvl/B6Xzer/+z8DA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.2.1.tgz",
+      "integrity": "sha512-eQgYCNYCTjJ5sB/PypU9RvnSsaM7mmsGy/CdTZigMM1qWW5zAvO3xrENwKAaVR8H23lqHw4mZoePdEnKt8cAfg==",
       "requires": {
-        "@pixi/core": "5.2.0"
+        "@pixi/core": "5.2.1"
       }
     },
     "@pixi/filter-noise": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.2.0.tgz",
-      "integrity": "sha512-7IBHqjuze5VEMYOKPz/O7wR3mks7xvYKvWmUaLV7FopUtDUFjklrVBWY39nBOsXKXm0qLOkkdKcwsqyXZ7xOFg==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.2.1.tgz",
+      "integrity": "sha512-Q0SLTiSvwxiwrNAhELescxTol3rn4Qvl6iq32rZ+0bPKnu9GkDWn3O/qBiDhfVVbYRk/nBai+UE+lIUxK7JFsw==",
       "requires": {
-        "@pixi/core": "5.2.0"
+        "@pixi/core": "5.2.1"
       }
     },
     "@pixi/graphics": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.2.0.tgz",
-      "integrity": "sha512-sXmN8CEjzd56wVh18AOv1cxsB70tP1FWIukTPg8EaSlhiFqiclQDGkf6mKDajuVrj7JhBjvFenKmv3ADYnLkqA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.2.1.tgz",
+      "integrity": "sha512-cyeG+gOJGruDZJIFnrLkojcsl+PSEobbuJ3HcmoNgemo4gmLC6c+zOoD8I5LFFzLXgrUVD0Y4WjOgM0ptH/4vg==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/interaction": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.2.0.tgz",
-      "integrity": "sha512-YoFGrwkKgNFsusXObcfgKJtLxjqeOaek3tZxssnZZOUSzIJGQ4mLur2I36C2AAufB+GxBL38TiP1nkAVurMC6A==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.2.1.tgz",
+      "integrity": "sha512-sYFZGkseJGgQ+4Z/wJGklz8JNOf+Ih5l1+eeBly0irHsouPw9+LoSCCTVTCG4Lg7Ir/NBEr5vD7kfB7PsRADHw==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/ticker": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/ticker": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/loaders": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.2.0.tgz",
-      "integrity": "sha512-lKd5RYGQ86NoQNFcu/IYLEkC/oa6XypDKewG9LDd7n9XKKeed0NRipg7HhcYVsliayYkszoQ/JdzidV/yxnHYw==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.2.1.tgz",
+      "integrity": "sha512-XhmGD0+svS9MzqGXzcl8y0HCWk2NWqmSYDse9wwD1jIwpygU4Q5rrrqZE3OrUYt6xEP4IZXfiVAnfAJdUDtrzA==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/utils": "5.2.0",
+        "@pixi/core": "5.2.1",
+        "@pixi/utils": "5.2.1",
         "resource-loader": "3.0.1"
       }
     },
     "@pixi/math": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.2.0.tgz",
-      "integrity": "sha512-Y21H/kMluJqZ/QWb8cdXuZlib6G26QfZtgc85KbSJmjpMVWw03g0OELqFqOhsMzNanXp3B4OL1ZsNXnp0lWROQ=="
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.2.1.tgz",
+      "integrity": "sha512-rsAXNk0uPvog51sdmBmbRBXoN30pZLjboHLNb7s5mfuCWkMgdR/UFdbLFzd+3dwsgpFvawFuKtbQbwO0McXn+g=="
     },
     "@pixi/mesh": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.2.0.tgz",
-      "integrity": "sha512-GTgxMlK3T2aWNk2CpWw6+zDXzOxDN15v4noVM6hqm691GQn6HXD68J14BHJhZxuP3PU9VD7/FARooMtAwaxVvg==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.2.1.tgz",
+      "integrity": "sha512-IAiDrdlAEi/B1jMlz8XqzMeI6wObm9WHXg+xqXA/Nwo12Ru8W3IiXgItNYFhSXbqVm0n/zTLdHtN589w3yyEVg==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/mesh-extras": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.2.0.tgz",
-      "integrity": "sha512-vmBcV3sRqHWZIfwd8GQEscqR8zzsgCLXdgE/tWOCGqgGbv0+mv25y/vRnRnL42YXZb/sPU1RrtgnDr7xHNVL2w==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.2.1.tgz",
+      "integrity": "sha512-x2waRYkAH+yuEBQh7/LRKxoQLtl7z3gL2xZ/Jd9PdL9jFvae65d5/BCbRUt4YIeqL8sF7GWN0yjiDaAXvzLUNw==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/mesh": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/mesh": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/mixin-cache-as-bitmap": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.2.0.tgz",
-      "integrity": "sha512-VaFxBiPFu5Ii3T/vwe+QozvQk/OMLApe0eTSXCzAZspijVCGVmnalTqDgY9GC6SvuLG967jRTdEwCAsc+w2uXA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.2.1.tgz",
+      "integrity": "sha512-ev87bp3oLt8563HF6JR43IOg9DAVAvT5ohF78P6md38hwyBZR8UYu+sZZmwmkR0o01ppLo23SOACJR6GQ5a5oA==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/mixin-get-child-by-name": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.2.0.tgz",
-      "integrity": "sha512-exL50cOrjOmJ02++Q56AamYkVKt7RqwdM0QQdfmJKRX9r8cG9u09IKW2/hWKGbyqNoP5gGORtZvXRCJG8JYH/A==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.2.1.tgz",
+      "integrity": "sha512-Hb9qmexAhHKhkbtKPpJG+dK2t0rKlbbVCgiGLsSQkhpuCVFBoIVplq2tKQOB0VzUHa/Olzub+DNEPxJ05rRbjA==",
       "requires": {
-        "@pixi/display": "5.2.0"
+        "@pixi/display": "5.2.1"
       }
     },
     "@pixi/mixin-get-global-position": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.2.0.tgz",
-      "integrity": "sha512-9P2EeymV23OonCVOdgYu0ZFlUZoCXh0wK/6wf6wb0N4Nefcz0mPfafHV5gp/qwCgB9OJk4RLKna1BDfxXn4LCA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.2.1.tgz",
+      "integrity": "sha512-XiJPLNzcXxuygDM+QFp4tGNwjYL/E4IMcc55n0v+2Y+WJalTWssC6qcj343HU+CVvpc2DG/arFk5/bhwXDGhvg==",
       "requires": {
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0"
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1"
       }
     },
     "@pixi/particles": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.2.0.tgz",
-      "integrity": "sha512-uB86M9hpiamclCOLMk6go0WJGXoiNfNzIIiC5OmUt61Fk3TSZiXbF//xWt/NB/unm3+WhycudSfR1IhLL1OdSw==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.2.1.tgz",
+      "integrity": "sha512-hl585Gwl/Zuim2cnvmYauhtE3Y5JCsbgqSN6FEUjdDVh142WbuX764sa1ogq7UcPgvle5zNpl9VjP8j3mm4u0w==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/polyfill": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.2.0.tgz",
-      "integrity": "sha512-xvwJ0vRVwf6fByvGTRzOsAv0N5GmopVI+pT5MV8Rk4AoqGQ8vWkhQQ8jy7PS4g0ak2DpwVrcTwUjxfrmjJCYTw==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.2.1.tgz",
+      "integrity": "sha512-qJ+Wgp9rhdv94zvA3+rmdvcbDun2VgCIXly+4t1vv1H0Z4YcE/6J4Psz1A3uRQk0AiIcgDNb79bqVNDOkJJp0A==",
       "requires": {
         "es6-promise-polyfill": "1.2.0",
         "object-assign": "4.1.1"
       }
     },
     "@pixi/prepare": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.2.0.tgz",
-      "integrity": "sha512-WE/VUIJXFrYMXFmWom4BZYB78IHQNeRZfN1SDN4X11cOciFH8uDafDpkMsjND95HZAqw+yQPU2pKResQnWEtag==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.2.1.tgz",
+      "integrity": "sha512-UQKkvtUmJda22027pB/BER5G8EGA5mD70rTsMzCVN/lvSQW1etX7sVxSSfeXgnBp9xm9mwl4oiIsWN1yGspgxQ==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/graphics": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/text": "5.2.0",
-        "@pixi/ticker": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/graphics": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/text": "5.2.1",
+        "@pixi/ticker": "5.2.1"
       }
     },
     "@pixi/runner": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.2.0.tgz",
-      "integrity": "sha512-vy/SGG8QFHMrWAqebMQdhxl/l6WlIbHXMDNDCYBWwXKYjmKzycrrj2o/mK9cBko8WDuoTRZ0Pe3JZ3XDYEsn9w=="
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.2.1.tgz",
+      "integrity": "sha512-nhU3HaYb3EJ6zHU20b1jU6pD7vQp3OXoAtAVBzqPMR/oWMkeEm4dDvp1PwbCbZPUGoT7mLfQ//5maufue1MPqA=="
     },
     "@pixi/settings": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.2.0.tgz",
-      "integrity": "sha512-AIxcUbgM3mh2QxS+nxNcPsqnJEBg3x/UO9ZpNMRhed9UPM/5mQ8CGZUMLTzIxhjSS16Do4uK9vZikMjV8dXm/Q==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.2.1.tgz",
+      "integrity": "sha512-QQfCywlYrWKUekn06P2hy1KR5MYXUyqVU0fbqEItjsH3RvN0LzE9ry2sDxf53qQ2/uCjKDXcT59YV9JcHEfwHA==",
       "requires": {
-        "ismobilejs": "0.5.2"
+        "ismobilejs": "1.0.3"
       }
     },
     "@pixi/sprite": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.2.0.tgz",
-      "integrity": "sha512-IW+S2Cs3MTcMSrsSA5fjk+xx3Q8eNrsT4hGVXy6JxViv3IknIqbyQwdSFGAyoowOwzhyg7xJExz7VDZRQBBLwg==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.2.1.tgz",
+      "integrity": "sha512-F2BrLpyVswTbYXQFPBf8QpyfwH0T/Vft+PPxMNHya0eg2UiYZJFYLxhmbSIJLD+bWMRbSnQRq0M+rHhVVtXt2Q==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/sprite-animated": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.2.0.tgz",
-      "integrity": "sha512-Liy5s3CKh2MuSJeVYX7w8mJ0//WMUPm/4ZHRJqRJApijjlXSxcnhHNxIMRLDb8iJNmqaoOi9qMUgK0AkGWuAtA==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.2.1.tgz",
+      "integrity": "sha512-FwYHhDWEmeQPZPEW+iwG+jMYM1h7hHMzOOMsR7fda1s2hVcYMK/RPAg2oWDFjx03nBFSMu4HjqUQn1lUmnp5Kw==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/ticker": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/ticker": "5.2.1"
       }
     },
     "@pixi/sprite-tiling": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.2.0.tgz",
-      "integrity": "sha512-iLQ98PrUVKqVzTYJsu+ZMCIRsJ1wapg55tf+m/78KK+h0WmgY70CJbO/A68dTqYZMLR39XPCtUp9bXXzXNEEdQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.2.1.tgz",
+      "integrity": "sha512-1BuskMYmyctmIzqi5CidTFZCr23+ROwGKsynNFAVzzbRlBaAhTNveiY9mt9QJ+Pd2hugh0vY31IMMDuMqsE7Uw==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/spritesheet": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.2.0.tgz",
-      "integrity": "sha512-48WNC3tSUXbWA7ZswEacSiVh396FLe3KLhFpWk2oIJ+7MtMQ1IdtkGjAaXgv0zx0EvvnvEt1VoQVo2eALswR5Q==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.2.1.tgz",
+      "integrity": "sha512-Enj1FFhRtq3cUuctyPCLoGsudnGe9nD+gfs9UbOy1HXIZNd+uXhItZSIEjAoHgPSUzXprgCWaZrgrOD4KjW/tA==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/loaders": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/loaders": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/text": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/text/-/text-5.2.0.tgz",
-      "integrity": "sha512-enEq/rJYXVobyGeTXCBTbRMlnKc7am+/WicymRt1bT7ia8L8A00xgOdEbfg6OeP2jLcyBVnopFhgHFe8jcp07Q==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/text/-/text-5.2.1.tgz",
+      "integrity": "sha512-SqpyyVTCx8ZioibK0Jnf3wHZWSdLGlZ8tK+uEuf2Hrv533ZHcF8fYsruWG8L9WFwXSGVCWcN/qEwivpAdWoMvA==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/text-bitmap": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.2.0.tgz",
-      "integrity": "sha512-RZD7GpQrKD+1B2wehnX0dI7ABB43JWNWoWXHl5wKfhjmPCxVmKEB9UfvOZd3sbnlxeL7BUA/gpYSxD6b6ZiA8g==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.2.1.tgz",
+      "integrity": "sha512-K5d40LZdcVgzUFfWeuVjYHWS/8MWcbilp01SBljJ8JZdjTWC32eYrlhoCfnGBgiT0WFX3nH16kMi/dYRtwGJEQ==",
       "requires": {
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/loaders": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/utils": "5.2.0"
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/loaders": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "@pixi/ticker": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.2.0.tgz",
-      "integrity": "sha512-6xX786cX/RWmQKeRQ3bNvg8JjS0VLA2LQy1sOmUctx2AwdZysI04k2xdw9Krtpn1mkudgAcNrTEsgPeGEjIF9Q==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.2.1.tgz",
+      "integrity": "sha512-xC2kfTjmThjo9VO28snfgvpLEJRzseTPBLP+LFn9fBqmuL17Pw+/eXgWsrTeizEOiTy+4NsaplMWdRs91UM8uw==",
       "requires": {
-        "@pixi/settings": "5.2.0"
+        "@pixi/settings": "5.2.1"
       }
     },
     "@pixi/utils": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.2.0.tgz",
-      "integrity": "sha512-oMLRlvx+vWHPR06uiOvfOhtkG/LDBR3Syea9QZoIbCJE/GLYgJX8f0cVfrdI0kCgfGj4luc8/CWI745MKafUqQ==",
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.2.1.tgz",
+      "integrity": "sha512-JKa/IDKK3cbwrJbhU4q3hdN5tPTsuiWco+WDSlEWq6vblrwJkhI+0dRQkooo2fL+Tso7k+hWQ+4k95YapTX5Og==",
       "requires": {
-        "@pixi/constants": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "earcut": "2.2.1",
+        "@pixi/constants": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "earcut": "2.2.2",
         "eventemitter3": "3.1.2",
         "url": "0.11.0"
       }
@@ -1044,13 +1044,13 @@
       "dev": true
     },
     "ajv": {
-      "version": "6.10.2",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
-      "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+      "version": "6.11.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
+      "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
       "dev": true,
       "requires": {
-        "fast-deep-equal": "2.0.1",
-        "fast-json-stable-stringify": "2.0.0",
+        "fast-deep-equal": "3.1.1",
+        "fast-json-stable-stringify": "2.1.0",
         "json-schema-traverse": "0.4.1",
         "uri-js": "4.2.2"
       }
@@ -1490,10 +1490,20 @@
       "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
       "dev": true
     },
+    "bindings": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "file-uri-to-path": "1.0.0"
+      }
+    },
     "bluebird": {
-      "version": "3.7.1",
-      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz",
-      "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==",
+      "version": "3.7.2",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+      "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
       "dev": true
     },
     "bn.js": {
@@ -1665,7 +1675,7 @@
       "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
       "dev": true,
       "requires": {
-        "pako": "1.0.10"
+        "pako": "1.0.11"
       }
     },
     "btoa-lite": {
@@ -1721,7 +1731,7 @@
       "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
       "dev": true,
       "requires": {
-        "bluebird": "3.7.1",
+        "bluebird": "3.7.2",
         "chownr": "1.1.3",
         "figgy-pudding": "3.5.1",
         "glob": "7.1.6",
@@ -1864,7 +1874,7 @@
         "anymatch": "2.0.0",
         "async-each": "1.0.3",
         "braces": "2.3.2",
-        "fsevents": "1.2.9",
+        "fsevents": "1.2.11",
         "glob-parent": "3.1.0",
         "inherits": "2.0.3",
         "is-binary-path": "1.0.1",
@@ -2134,12 +2144,20 @@
       "dev": true
     },
     "compressible": {
-      "version": "2.0.17",
-      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
-      "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
+      "version": "2.0.18",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+      "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
       "dev": true,
       "requires": {
-        "mime-db": "1.42.0"
+        "mime-db": "1.43.0"
+      },
+      "dependencies": {
+        "mime-db": {
+          "version": "1.43.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+          "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+          "dev": true
+        }
       }
     },
     "compression": {
@@ -2150,7 +2168,7 @@
       "requires": {
         "accepts": "1.3.7",
         "bytes": "3.0.0",
-        "compressible": "2.0.17",
+        "compressible": "2.0.18",
         "debug": "2.6.9",
         "on-headers": "1.0.2",
         "safe-buffer": "5.1.2",
@@ -2453,9 +2471,9 @@
         "is-arguments": "1.0.4",
         "is-date-object": "1.0.1",
         "is-regex": "1.0.4",
-        "object-is": "1.0.1",
+        "object-is": "1.0.2",
         "object-keys": "1.1.1",
-        "regexp.prototype.flags": "1.2.0"
+        "regexp.prototype.flags": "1.3.0"
       }
     },
     "deep-extend": {
@@ -2757,13 +2775,13 @@
         "end-of-stream": "1.4.4",
         "inherits": "2.0.3",
         "readable-stream": "2.3.6",
-        "stream-shift": "1.0.0"
+        "stream-shift": "1.0.1"
       }
     },
     "earcut": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.1.tgz",
-      "integrity": "sha512-5jIMi2RB3HtGPHcYd9Yyl0cczo84y+48lgKPxMijliNQaKAHEZJbdzLmKmdxG/mCdS/YD9DQ1gihL8mxzR0F9w=="
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
+      "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ=="
     },
     "ee-first": {
       "version": "1.1.1",
@@ -2941,9 +2959,9 @@
       "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
     },
     "events": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
-      "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+      "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
       "dev": true
     },
     "eventsource": {
@@ -3168,9 +3186,9 @@
       }
     },
     "fast-deep-equal": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-      "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+      "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
       "dev": true
     },
     "fast-glob": {
@@ -3198,9 +3216,9 @@
       }
     },
     "fast-json-stable-stringify": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
-      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
       "dev": true
     },
     "fastq": {
@@ -3236,6 +3254,13 @@
         "escape-string-regexp": "1.0.5"
       }
     },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+      "dev": true,
+      "optional": true
+    },
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -3425,9 +3450,9 @@
       }
     },
     "follow-redirects": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
-      "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz",
+      "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==",
       "dev": true,
       "requires": {
         "debug": "3.2.6"
@@ -3517,14 +3542,15 @@
       "dev": true
     },
     "fsevents": {
-      "version": "1.2.9",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
-      "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+      "version": "1.2.11",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz",
+      "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==",
       "dev": true,
       "optional": true,
       "requires": {
+        "bindings": "1.5.0",
         "nan": "2.14.0",
-        "node-pre-gyp": "0.12.0"
+        "node-pre-gyp": "0.14.0"
       },
       "dependencies": {
         "abbrev": {
@@ -3569,7 +3595,7 @@
           }
         },
         "chownr": {
-          "version": "1.1.1",
+          "version": "1.1.3",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -3596,12 +3622,12 @@
           "optional": true
         },
         "debug": {
-          "version": "4.1.1",
+          "version": "3.2.6",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "ms": "2.1.1"
+            "ms": "2.1.2"
           }
         },
         "deep-extend": {
@@ -3623,12 +3649,12 @@
           "optional": true
         },
         "fs-minipass": {
-          "version": "1.2.5",
+          "version": "1.2.7",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "minipass": "2.3.5"
+            "minipass": "2.9.0"
           }
         },
         "fs.realpath": {
@@ -3654,14 +3680,14 @@
           }
         },
         "glob": {
-          "version": "7.1.3",
+          "version": "7.1.6",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
             "fs.realpath": "1.0.0",
             "inflight": "1.0.6",
-            "inherits": "2.0.3",
+            "inherits": "2.0.4",
             "minimatch": "3.0.4",
             "once": "1.4.0",
             "path-is-absolute": "1.0.1"
@@ -3683,7 +3709,7 @@
           }
         },
         "ignore-walk": {
-          "version": "3.0.1",
+          "version": "3.0.3",
           "bundled": true,
           "dev": true,
           "optional": true,
@@ -3702,7 +3728,7 @@
           }
         },
         "inherits": {
-          "version": "2.0.3",
+          "version": "2.0.4",
           "bundled": true,
           "dev": true
         },
@@ -3740,21 +3766,21 @@
           "dev": true
         },
         "minipass": {
-          "version": "2.3.5",
+          "version": "2.9.0",
           "bundled": true,
           "dev": true,
           "requires": {
             "safe-buffer": "5.1.2",
-            "yallist": "3.0.3"
+            "yallist": "3.1.1"
           }
         },
         "minizlib": {
-          "version": "1.2.1",
+          "version": "1.3.3",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "minipass": "2.3.5"
+            "minipass": "2.9.0"
           }
         },
         "mkdirp": {
@@ -3766,38 +3792,38 @@
           }
         },
         "ms": {
-          "version": "2.1.1",
+          "version": "2.1.2",
           "bundled": true,
           "dev": true,
           "optional": true
         },
         "needle": {
-          "version": "2.3.0",
+          "version": "2.4.0",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "debug": "4.1.1",
+            "debug": "3.2.6",
             "iconv-lite": "0.4.24",
             "sax": "1.2.4"
           }
         },
         "node-pre-gyp": {
-          "version": "0.12.0",
+          "version": "0.14.0",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
             "detect-libc": "1.0.3",
             "mkdirp": "0.5.1",
-            "needle": "2.3.0",
+            "needle": "2.4.0",
             "nopt": "4.0.1",
-            "npm-packlist": "1.4.1",
+            "npm-packlist": "1.4.7",
             "npmlog": "4.1.2",
             "rc": "1.2.8",
-            "rimraf": "2.6.3",
-            "semver": "5.7.0",
-            "tar": "4.4.8"
+            "rimraf": "2.7.1",
+            "semver": "5.7.1",
+            "tar": "4.4.13"
           }
         },
         "nopt": {
@@ -3811,19 +3837,28 @@
           }
         },
         "npm-bundled": {
-          "version": "1.0.6",
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "npm-normalize-package-bin": "1.0.1"
+          }
+        },
+        "npm-normalize-package-bin": {
+          "version": "1.0.1",
           "bundled": true,
           "dev": true,
           "optional": true
         },
         "npm-packlist": {
-          "version": "1.4.1",
+          "version": "1.4.7",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "ignore-walk": "3.0.1",
-            "npm-bundled": "1.0.6"
+            "ignore-walk": "3.0.3",
+            "npm-bundled": "1.1.1"
           }
         },
         "npmlog": {
@@ -3886,7 +3921,7 @@
           "optional": true
         },
         "process-nextick-args": {
-          "version": "2.0.0",
+          "version": "2.0.1",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -3918,21 +3953,21 @@
           "optional": true,
           "requires": {
             "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
+            "inherits": "2.0.4",
             "isarray": "1.0.0",
-            "process-nextick-args": "2.0.0",
+            "process-nextick-args": "2.0.1",
             "safe-buffer": "5.1.2",
             "string_decoder": "1.1.1",
             "util-deprecate": "1.0.2"
           }
         },
         "rimraf": {
-          "version": "2.6.3",
+          "version": "2.7.1",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "glob": "7.1.3"
+            "glob": "7.1.6"
           }
         },
         "safe-buffer": {
@@ -3953,7 +3988,7 @@
           "optional": true
         },
         "semver": {
-          "version": "5.7.0",
+          "version": "5.7.1",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -4004,18 +4039,18 @@
           "optional": true
         },
         "tar": {
-          "version": "4.4.8",
+          "version": "4.4.13",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "chownr": "1.1.1",
-            "fs-minipass": "1.2.5",
-            "minipass": "2.3.5",
-            "minizlib": "1.2.1",
+            "chownr": "1.1.3",
+            "fs-minipass": "1.2.7",
+            "minipass": "2.9.0",
+            "minizlib": "1.3.3",
             "mkdirp": "0.5.1",
             "safe-buffer": "5.1.2",
-            "yallist": "3.0.3"
+            "yallist": "3.1.1"
           }
         },
         "util-deprecate": {
@@ -4039,7 +4074,7 @@
           "dev": true
         },
         "yallist": {
-          "version": "3.0.3",
+          "version": "3.1.1",
           "bundled": true,
           "dev": true
         }
@@ -4501,7 +4536,7 @@
       "dev": true,
       "requires": {
         "eventemitter3": "4.0.0",
-        "follow-redirects": "1.9.0",
+        "follow-redirects": "1.10.0",
         "requires-port": "1.0.0"
       },
       "dependencies": {
@@ -5169,9 +5204,9 @@
       "dev": true
     },
     "ismobilejs": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-0.5.2.tgz",
-      "integrity": "sha512-ta9UdV60xVZk/ZafFtSFslQaE76SvNkcs1r73d2PVR21zVzx9xuYv9tNe4MxA1NN7WoeCc2RjGot3Bz1eHDx3Q=="
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.0.3.tgz",
+      "integrity": "sha512-6rTcdWK7PHIWPYlCPdTbU9eE9yzdnIQSpiH+8Ln5OqugpEszQK5KHlsjZrDae26fEhki9rPvQmsjI1q4CLuKIA=="
     },
     "isobject": {
       "version": "3.0.1",
@@ -5733,7 +5768,7 @@
         "constants-browserify": "1.0.0",
         "crypto-browserify": "3.12.0",
         "domain-browser": "1.2.0",
-        "events": "3.0.0",
+        "events": "3.1.0",
         "https-browserify": "1.0.0",
         "os-browserify": "0.3.0",
         "path-browserify": "0.0.1",
@@ -5849,9 +5884,9 @@
       "dev": true
     },
     "object-is": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
-      "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
+      "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
       "dev": true
     },
     "object-keys": {
@@ -5869,6 +5904,18 @@
         "isobject": "3.0.1"
       }
     },
+    "object.assign": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+      "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+      "dev": true,
+      "requires": {
+        "define-properties": "1.1.3",
+        "function-bind": "1.1.1",
+        "has-symbols": "1.0.0",
+        "object-keys": "1.1.1"
+      }
+    },
     "object.getownpropertydescriptors": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
@@ -6092,9 +6139,9 @@
       }
     },
     "pako": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
-      "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+      "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
       "dev": true
     },
     "parallel-transform": {
@@ -6290,44 +6337,44 @@
       }
     },
     "pixi.js": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.2.0.tgz",
-      "integrity": "sha512-q4gxbTU51nrh8qxbplU6EVx2dnb9SiI9OeQOrQmtmCTpysJXAK5p9M2c3v5JRIgK8ZCL74y5vrwHaaB1ZQoPKw==",
-      "requires": {
-        "@pixi/accessibility": "5.2.0",
-        "@pixi/app": "5.2.0",
-        "@pixi/constants": "5.2.0",
-        "@pixi/core": "5.2.0",
-        "@pixi/display": "5.2.0",
-        "@pixi/extract": "5.2.0",
-        "@pixi/filter-alpha": "5.2.0",
-        "@pixi/filter-blur": "5.2.0",
-        "@pixi/filter-color-matrix": "5.2.0",
-        "@pixi/filter-displacement": "5.2.0",
-        "@pixi/filter-fxaa": "5.2.0",
-        "@pixi/filter-noise": "5.2.0",
-        "@pixi/graphics": "5.2.0",
-        "@pixi/interaction": "5.2.0",
-        "@pixi/loaders": "5.2.0",
-        "@pixi/math": "5.2.0",
-        "@pixi/mesh": "5.2.0",
-        "@pixi/mesh-extras": "5.2.0",
-        "@pixi/mixin-cache-as-bitmap": "5.2.0",
-        "@pixi/mixin-get-child-by-name": "5.2.0",
-        "@pixi/mixin-get-global-position": "5.2.0",
-        "@pixi/particles": "5.2.0",
-        "@pixi/polyfill": "5.2.0",
-        "@pixi/prepare": "5.2.0",
-        "@pixi/runner": "5.2.0",
-        "@pixi/settings": "5.2.0",
-        "@pixi/sprite": "5.2.0",
-        "@pixi/sprite-animated": "5.2.0",
-        "@pixi/sprite-tiling": "5.2.0",
-        "@pixi/spritesheet": "5.2.0",
-        "@pixi/text": "5.2.0",
-        "@pixi/text-bitmap": "5.2.0",
-        "@pixi/ticker": "5.2.0",
-        "@pixi/utils": "5.2.0"
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.2.1.tgz",
+      "integrity": "sha512-jmkxchTmotiJN/mOS6+kGEjBOhHxAfx4JuWsJGe+uix1J88wdM9iNYFjuib+ITXrLxo0OrC6EhQgNE9jzZWgcg==",
+      "requires": {
+        "@pixi/accessibility": "5.2.1",
+        "@pixi/app": "5.2.1",
+        "@pixi/constants": "5.2.1",
+        "@pixi/core": "5.2.1",
+        "@pixi/display": "5.2.1",
+        "@pixi/extract": "5.2.1",
+        "@pixi/filter-alpha": "5.2.1",
+        "@pixi/filter-blur": "5.2.1",
+        "@pixi/filter-color-matrix": "5.2.1",
+        "@pixi/filter-displacement": "5.2.1",
+        "@pixi/filter-fxaa": "5.2.1",
+        "@pixi/filter-noise": "5.2.1",
+        "@pixi/graphics": "5.2.1",
+        "@pixi/interaction": "5.2.1",
+        "@pixi/loaders": "5.2.1",
+        "@pixi/math": "5.2.1",
+        "@pixi/mesh": "5.2.1",
+        "@pixi/mesh-extras": "5.2.1",
+        "@pixi/mixin-cache-as-bitmap": "5.2.1",
+        "@pixi/mixin-get-child-by-name": "5.2.1",
+        "@pixi/mixin-get-global-position": "5.2.1",
+        "@pixi/particles": "5.2.1",
+        "@pixi/polyfill": "5.2.1",
+        "@pixi/prepare": "5.2.1",
+        "@pixi/runner": "5.2.1",
+        "@pixi/settings": "5.2.1",
+        "@pixi/sprite": "5.2.1",
+        "@pixi/sprite-animated": "5.2.1",
+        "@pixi/sprite-tiling": "5.2.1",
+        "@pixi/spritesheet": "5.2.1",
+        "@pixi/text": "5.2.1",
+        "@pixi/text-bitmap": "5.2.1",
+        "@pixi/ticker": "5.2.1",
+        "@pixi/utils": "5.2.1"
       }
     },
     "pixi.js-keyboard": {
@@ -6339,21 +6386,21 @@
       }
     },
     "pixi.js-legacy": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/pixi.js-legacy/-/pixi.js-legacy-5.2.0.tgz",
-      "integrity": "sha512-t4XeWO0m1ZplRIrVdRRL2Qszqufth1tNIpTDD/CIhbV4wdFk4WYqYgYFwx7XXXsaXZdCnYkbpf7aJ4jRFRtJjg==",
-      "requires": {
-        "@pixi/canvas-display": "5.2.0",
-        "@pixi/canvas-extract": "5.2.0",
-        "@pixi/canvas-graphics": "5.2.0",
-        "@pixi/canvas-mesh": "5.2.0",
-        "@pixi/canvas-particles": "5.2.0",
-        "@pixi/canvas-prepare": "5.2.0",
-        "@pixi/canvas-renderer": "5.2.0",
-        "@pixi/canvas-sprite": "5.2.0",
-        "@pixi/canvas-sprite-tiling": "5.2.0",
-        "@pixi/canvas-text": "5.2.0",
-        "pixi.js": "5.2.0"
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/pixi.js-legacy/-/pixi.js-legacy-5.2.1.tgz",
+      "integrity": "sha512-ZdqACk9lV5fY/sS+TI/EhLnGo3EPhMkTAeUEhdBVO0gC2lr7ZK/c8VoeSsn+7TvFFIq9AhIaoWc2J+eibHXRdQ==",
+      "requires": {
+        "@pixi/canvas-display": "5.2.1",
+        "@pixi/canvas-extract": "5.2.1",
+        "@pixi/canvas-graphics": "5.2.1",
+        "@pixi/canvas-mesh": "5.2.1",
+        "@pixi/canvas-particles": "5.2.1",
+        "@pixi/canvas-prepare": "5.2.1",
+        "@pixi/canvas-renderer": "5.2.1",
+        "@pixi/canvas-sprite": "5.2.1",
+        "@pixi/canvas-sprite-tiling": "5.2.1",
+        "@pixi/canvas-text": "5.2.1",
+        "pixi.js": "5.2.1"
       }
     },
     "pkg-dir": {
@@ -6744,12 +6791,92 @@
       }
     },
     "regexp.prototype.flags": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz",
-      "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
+      "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
       "dev": true,
       "requires": {
-        "define-properties": "1.1.3"
+        "define-properties": "1.1.3",
+        "es-abstract": "1.17.4"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.17.4",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+          "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+          "dev": true,
+          "requires": {
+            "es-to-primitive": "1.2.1",
+            "function-bind": "1.1.1",
+            "has": "1.0.3",
+            "has-symbols": "1.0.1",
+            "is-callable": "1.1.5",
+            "is-regex": "1.0.5",
+            "object-inspect": "1.7.0",
+            "object-keys": "1.1.1",
+            "object.assign": "4.1.0",
+            "string.prototype.trimleft": "2.1.1",
+            "string.prototype.trimright": "2.1.1"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+          "dev": true,
+          "requires": {
+            "is-callable": "1.1.5",
+            "is-date-object": "1.0.1",
+            "is-symbol": "1.0.2"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+          "dev": true
+        },
+        "is-callable": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "dev": true
+        },
+        "is-regex": {
+          "version": "1.0.5",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "dev": true,
+          "requires": {
+            "has": "1.0.3"
+          }
+        },
+        "object-inspect": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "dev": true
+        },
+        "string.prototype.trimleft": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+          "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+          "dev": true,
+          "requires": {
+            "define-properties": "1.1.3",
+            "function-bind": "1.1.1"
+          }
+        },
+        "string.prototype.trimright": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+          "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+          "dev": true,
+          "requires": {
+            "define-properties": "1.1.3",
+            "function-bind": "1.1.1"
+          }
+        }
       }
     },
     "registry-auth-token": {
@@ -6914,6 +7041,12 @@
             "has-flag": "4.0.0"
           }
         },
+        "uuid": {
+          "version": "3.3.3",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+          "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
+          "dev": true
+        },
         "yargs-parser": {
           "version": "15.0.0",
           "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
@@ -7151,7 +7284,7 @@
       "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
       "dev": true,
       "requires": {
-        "ajv": "6.10.2",
+        "ajv": "6.11.0",
         "ajv-errors": "1.0.1",
         "ajv-keywords": "3.4.1"
       }
@@ -7224,9 +7357,9 @@
       }
     },
     "serialize-javascript": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
-      "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
+      "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
       "dev": true
     },
     "serve-index": {
@@ -7485,7 +7618,7 @@
       "dev": true,
       "requires": {
         "faye-websocket": "0.10.0",
-        "uuid": "3.3.3"
+        "uuid": "3.4.0"
       }
     },
     "sockjs-client": {
@@ -7609,7 +7742,7 @@
         "detect-node": "2.0.4",
         "hpack.js": "2.1.6",
         "obuf": "1.1.2",
-        "readable-stream": "3.4.0",
+        "readable-stream": "3.5.0",
         "wbuf": "1.7.3"
       },
       "dependencies": {
@@ -7629,9 +7762,9 @@
           "dev": true
         },
         "readable-stream": {
-          "version": "3.4.0",
-          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
-          "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+          "version": "3.5.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+          "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
           "dev": true,
           "requires": {
             "inherits": "2.0.3",
@@ -7709,7 +7842,7 @@
       "dev": true,
       "requires": {
         "end-of-stream": "1.4.4",
-        "stream-shift": "1.0.0"
+        "stream-shift": "1.0.1"
       }
     },
     "stream-http": {
@@ -7726,9 +7859,9 @@
       }
     },
     "stream-shift": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
-      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
       "dev": true
     },
     "string-width": {
@@ -7883,9 +8016,9 @@
       }
     },
     "terser": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.0.tgz",
-      "integrity": "sha512-oDG16n2WKm27JO8h4y/w3iqBGAOSCtq7k8dRmrn4Wf9NouL0b2WpMHGChFGZq4nFAQy1FsNJrVQHfurXOSTmOA==",
+      "version": "4.6.3",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz",
+      "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==",
       "dev": true,
       "requires": {
         "commander": "2.20.3",
@@ -7902,18 +8035,18 @@
       }
     },
     "terser-webpack-plugin": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
-      "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz",
+      "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==",
       "dev": true,
       "requires": {
         "cacache": "12.0.3",
         "find-cache-dir": "2.1.0",
         "is-wsl": "1.1.0",
         "schema-utils": "1.0.0",
-        "serialize-javascript": "1.9.1",
+        "serialize-javascript": "2.1.2",
         "source-map": "0.6.1",
-        "terser": "4.4.0",
+        "terser": "4.6.3",
         "webpack-sources": "1.4.3",
         "worker-farm": "1.7.0"
       }
@@ -8326,9 +8459,9 @@
       "dev": true
     },
     "uuid": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
-      "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
     },
     "v8-compile-cache": {
       "version": "2.0.3",
@@ -8383,9 +8516,9 @@
       "integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64="
     },
     "webpack": {
-      "version": "4.41.2",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz",
-      "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==",
+      "version": "4.41.5",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz",
+      "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==",
       "dev": true,
       "requires": {
         "@webassemblyjs/ast": "1.8.5",
@@ -8393,7 +8526,7 @@
         "@webassemblyjs/wasm-edit": "1.8.5",
         "@webassemblyjs/wasm-parser": "1.8.5",
         "acorn": "6.4.0",
-        "ajv": "6.10.2",
+        "ajv": "6.11.0",
         "ajv-keywords": "3.4.1",
         "chrome-trace-event": "1.0.2",
         "enhanced-resolve": "4.1.1",
@@ -8408,7 +8541,7 @@
         "node-libs-browser": "2.2.1",
         "schema-utils": "1.0.0",
         "tapable": "1.1.3",
-        "terser-webpack-plugin": "1.4.1",
+        "terser-webpack-plugin": "1.4.3",
         "watchpack": "1.6.0",
         "webpack-sources": "1.4.3"
       },
@@ -8611,9 +8744,9 @@
       }
     },
     "webpack-dev-server": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz",
-      "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==",
+      "version": "3.10.1",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz",
+      "integrity": "sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA==",
       "dev": true,
       "requires": {
         "ansi-html": "0.0.7",
@@ -8807,7 +8940,7 @@
       "dev": true,
       "requires": {
         "ansi-colors": "3.2.4",
-        "uuid": "3.3.3"
+        "uuid": "3.4.0"
       }
     },
     "webpack-sources": {
diff --git a/package.json b/package.json
index ebed15d5c5598600acbc35f4cba445f7bb984578..812fdd15683d261bc42dd12b608d4460b45bd14c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "medsurf-draw",
-  "version": "1.0.19",
+  "version": "1.0.23",
   "description": "Draw annotations on jpg/zoomify images, based on PIXI.js",
   "keywords": [
     "draw",
@@ -27,11 +27,11 @@
   "license": "MIT",
   "dependencies": {
     "@ascii-dev-user/medsurf-lib": "file:/srv/data/unibe/medsurf-shared/dist/medsurf-lib",
-    "@babel/core": "^7.8.3",
+    "@babel/core": "^7.8.4",
     "debounce": "^1.2.0",
     "pixi.js-keyboard": "^1.0.9",
-    "pixi.js-legacy": "^5.2.0",
-    "uuid": "^3.3.3",
+    "pixi.js-legacy": "^5.2.1",
+    "uuid": "^3.4.0",
     "webfontloader": "^1.6.28"
   },
   "devDependencies": {
@@ -43,8 +43,8 @@
     "release-it": "^12.4.3",
     "ts-loader": "^6.2.1",
     "typescript": "3.5.3",
-    "webpack": "^4.41.2",
+    "webpack": "^4.41.5",
     "webpack-cli": "^3.3.10",
-    "webpack-dev-server": "^3.9.0"
+    "webpack-dev-server": "^3.10.1"
   }
 }
diff --git a/src/app/index.ts b/src/app/index.ts
index 400c34b4b42a12664b63291d456f6c17d643566f..d22f987f4172eb2b658c5fc6552d5e62ae1a5680 100644
--- a/src/app/index.ts
+++ b/src/app/index.ts
@@ -1,7 +1,8 @@
 import * as PIXI from "pixi.js-legacy";
 import * as Models from '@ascii-dev-user/medsurf-lib/models';
 import * as Keyboard from "pixi.js-keyboard";
-import {MedsurfTileSprite} from "../lib/elements/images/MedsurfTileSprite";
+import {MedsurfSprite} from "../lib";
+// import {MedsurfTileSprite} from "../lib/elements/images/MedsurfTileSprite";
 import {PositionPoint} from "../lib/elements/positionings/PositionPoint";
 import {RectanglePrimitive} from "../lib/elements/primitives/RectanglePrimitive";
 import {EllipsePrimitive} from "../lib/elements/primitives/EllipsePrimitive";
@@ -9,9 +10,9 @@ import {TextPrimitive} from "../lib/elements/primitives/TextPrimitive";
 import {ArrowPrimitive} from "../lib/elements/primitives/ArrowPrimitive";
 import {Line} from "../lib/elements/connections/Line";
 import {ImageNavigatorElement} from "../lib/elements/interactions/image/ImageNavigatorElement";
+import {VirtualPointerElement} from "../lib/elements/interactions/image/VirtualPointerElement";
 import {FillCollection} from "../lib/elements/collections/FillCollection";
 import {LegendCollection} from "../lib/elements/collections/LegendCollection";
-import {MedsurfSprite} from "../lib";
 
 const canvas = document.getElementById("medsurf_canvas") as HTMLCanvasElement;
 const width = canvas.width;
@@ -71,7 +72,13 @@ PIXI.Renderer.registerPlugin('bla', bla);
         loader.add("cursor_scale", "./assets/cursors/scale.png");
         loader.add("cursor_select", "./assets/cursors/select.png");
         loader.load((loader: PIXI.Loader, resources: any) => {
-            const app = new PIXI.Application({ width: width, height: height, view: canvas });
+            const app = new PIXI.Application({
+                width: width,
+                height: height,
+                view: canvas,
+                antialias: true
+            });
+
             app.ticker.add(async (delta: number) => {
                 // @ts-ignore
                 // PIXI.keyboardManager.update();
@@ -240,10 +247,11 @@ PIXI.Renderer.registerPlugin('bla', bla);
 
             // IMAGES
             // BaseSprite
-            // let image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("https://api.medsurf.preview.iml.unibe.ch/v1/file/slides/3893/image/1500x1514_80_eaaa24fd-e69e-491e-b576-fccab29c85a2.jpg"));
-            // let image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("http://localhost:3000/v1/file/slide/2701,2701/image/1800x1800_80.jpeg"));
+            // let image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("https://api.medsurf.preview.iml.unibe.ch/v1/file/slides/3893/image/1500x1514_80_eaaa24fd-e69e-491e-b576-fccab29c85a2.jpg"), 1500);
+            // let image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("https://api.medsurf.iml.unibe.ch/v1/file/slide/2701,2701/image/1800x1800_80.jpeg"), 1800);
+            let image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("https://api.medsurf.iml.unibe.ch/v1/file/slide/10400/image/1800x1800_80.jpeg"), 1800);
             // Tile BaseSprite
-            let image = new MedsurfTileSprite(app.renderer, canvas, 5800, "https://api.medsurf.preview.iml.unibe.ch:443/v1/file/slide/5800/image/", imageWidth, 20512);
+            // let image = new MedsurfTileSprite(app.renderer, canvas, 5800, "https://api.medsurf.preview.iml.unibe.ch:443/v1/file/slide/5800/image/", imageWidth, 20512);
             // Video
             // let image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("./assets/juldem.mp4"), 1920);
 
@@ -252,6 +260,9 @@ PIXI.Renderer.registerPlugin('bla', bla);
             let navigator = new ImageNavigatorElement(app.renderer, canvas, image);
             app.stage.addChild(navigator);
 
+            let virtualPointer = new VirtualPointerElement(canvas, image);
+            app.stage.addChild(virtualPointer);
+
             buttonChange.addEventListener("click", () => {
                 /*
                 // @ts-ignore
@@ -264,11 +275,13 @@ PIXI.Renderer.registerPlugin('bla', bla);
                 image.destroy();
 
                 setTimeout(() => {
+                    /*
                     image = new MedsurfTileSprite(app.renderer, canvas, 5802, "https://api.medsurf.preview.iml.unibe.ch:443/v1/file/slide/5802/image/", 19992, 15832);
                     app.stage.addChild(image);
 
                     let navigator = new ImageNavigatorElement(app.renderer, canvas, image);
                     app.stage.addChild(navigator);
+                    */
                 }, 50);
             });
 
@@ -813,6 +826,7 @@ PIXI.Renderer.registerPlugin('bla', bla);
                     hasLine: false,
                     hasFill: true,
                     fillColor: 0xFF00FF,
+                    fillAlpha: 0.35
                 }
             }, imageWidth);
             image.addChild(fill1);
@@ -957,6 +971,74 @@ PIXI.Renderer.registerPlugin('bla', bla);
             legend1.name = "legend1";
             image.addChild(legend1);
 
+            /*
+                id: 'p9',
+                type: Models.ImageObjectType.POSITIONPOINT,
+                isStatic: false,
+                position: {
+                    x: 500 / imageWidth,
+                    y: 400 / imageWidth,
+                },
+                isSelftest: false
+             */
+
+            const testPoint = new PositionPoint({
+                id: 'testPoint',
+                type: Models.ImageObjectType.POSITIONPOINT,
+                isStatic: false,
+                position: {
+                    x: 700 / imageWidth,
+                    y: 700 / imageWidth,
+                },
+                isSelftest: false
+            }, imageWidth);
+            image.addChild(testPoint);
+
+            /*
+                id: 'text',
+                type: Models.ImageObjectType.TEXT,
+                isStatic: false,
+                positionPoint: point5.model,
+                rotateWithLine: false,
+                text: "Hello Text",
+                rectangle: {
+                    x: 60 / imageWidth,
+                    y: 0,
+                    width: 0,
+                    height: 0,
+                },
+                style: {
+                    fill: 0xe2d62d,
+                    fontSize: 22 / imageWidth,
+                    fontFamily: "proxima_nova_altsemibold",
+                    align: 'left',
+                    breakWords: false,
+                }
+             */
+            const testText = new TextPrimitive({
+                id: "949484b6-f1f7-4bca-adf8-401617784cbd",
+                type: Models.ImageObjectType.TEXT,
+                isStatic: false,
+                positionPoint: testPoint.model,
+                rotateWithLine: false,
+                text: "Area subcallosa\ntest\nbla",
+                rectangle: {
+                    x: 0.08444444444444445,
+                    y: 0,
+                    width: 0.15777777777777777,
+                    height: 0.015
+                },
+                style: {
+                    align: "left",
+                    breakWords: false,
+                    fill: 16777215,
+                    fontFamily: "proxima_nova_altsemibold",
+                    fontSize: 0.02
+                },
+
+            }, 1800);
+            testPoint.addChild(testText);
+
             // TODO emit draw event on both
 
             /*
diff --git a/src/lib/elements/collections/FillCollection.ts b/src/lib/elements/collections/FillCollection.ts
index 965f3b53c6466837417c7f4a366bb980aeaf0a37..19062685bd5afb761db5fcc8e3c122fdb300e7d6 100644
--- a/src/lib/elements/collections/FillCollection.ts
+++ b/src/lib/elements/collections/FillCollection.ts
@@ -17,8 +17,6 @@ import {LegendTextPrimitive} from "../primitives/LegendTextPrimitive";
 import {InteractiveGenerator} from "../../generators/InteractiveGenerator";
 import {LegendCollection} from "./LegendCollection";
 import {LegendColumnCollection} from "./LegendColumnCollection";
-import DisplayObject = PIXI.DisplayObject;
-import {LegendItem} from "@ascii-dev-user/medsurf-lib/models";
 
 /**
  * Fill collection
@@ -29,14 +27,8 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
      */
     private _interactiveItems: ImageObject[];
     private _lines: Line[];
-    protected _fillColor: number;
-    protected _fillAlpha: number;
-    /* TODO remove
-    private _isInteractive: boolean;
-    protected _color: number;
-    protected _fillColor: number;
-    protected _fillAlpha: number;
-    */
+    protected _fillColor: number | undefined;
+    protected _fillAlpha: number | undefined;
 
     /**
      * Interactions
@@ -62,7 +54,6 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
      * Design
      */
     protected readonly _fillAlphaDefault: number = 1;
-    protected readonly _fillAlphaNormal: number = 1;
     protected readonly _fillAlphaInteractive: number = 0.00000001;
     protected readonly _fillColorDefault: number = 0xFFFFFF;
     protected readonly _fillColorSelected: number = 0x4a90e2;
@@ -85,13 +76,12 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
                 hasFill: false,
             };
         }
-        if (!this.model.options.fillColor) {
+        if (this.model.options.fillColor === undefined || this.model.options.fillColor === null) {
             this.model.options.hasFill = true;
             this.model.options.fillColor = this._fillColorDefault;
         }
-        if (!this.model.options.fillAlpha) {
+        if (this.model.options.fillAlpha === undefined || this.model.options.fillAlpha === null) {
             this.model.options.hasFill = true;
-            this.model.options.fillColor = this._fillColorDefault;
             this.model.options.fillAlpha = this._fillAlphaDefault;
         }
 
@@ -265,8 +255,10 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
         }
 
         // Begin draw
-        if (this.model.options.fillColor) {
+        if (this.model.options.hasFill) {
             this._fillElement.beginFill(this._fillColor, this._fillAlpha);
+        } else {
+            this._fillElement.beginFill(this._fillColorDefault, 0.00000001);
         }
 
         // Get first element and moveTo this
@@ -464,7 +456,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
 
         this.removeChild(this._configurationElement);
 
-        this._fillColor = this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = this.model.options.fillColor;
         this.draw();
 
         this.parent.sortChildren();
@@ -497,7 +489,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     protected _removeModeDefault(): void {
-        this._fillAlpha = this._fillAlphaNormal;
+        this._fillAlpha = this.model.options.fillAlpha === undefined ?  this._fillAlphaDefault : this.model.options.fillAlpha;
         this.draw();
 
         // Events
@@ -535,7 +527,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     protected _removeModeSelftest(): void {
-        this._fillAlpha = this._fillAlphaNormal;
+        this._fillAlpha = this.model.options.fillAlpha === undefined ?  this._fillAlphaDefault : this.model.options.fillAlpha;
         this.draw();
 
         // Events
@@ -606,7 +598,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     protected _removeModeBlocked(): void {
-        this._fillColor = this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = this.model.options.fillColor;
         this.draw();
 
         this.filters = [];
@@ -678,7 +670,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     protected _removeModeSelftestChoosing(): void {
-        this._fillColor = this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = this.model.options.fillColor;
         this.draw();
 
         // Events
@@ -700,7 +692,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     protected _removeModeInteractiveChoosing(): void {
-        this._fillColor = this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = this.model.options.fillColor;
         this.draw();
 
         // Events
@@ -763,7 +755,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     protected _onInteractive(): void {
-        this._fillAlpha = this._fillAlphaNormal;
+        this._fillAlpha = this.model.options.fillAlpha === undefined ?  this._fillAlphaDefault : this.model.options.fillAlpha;
         this.draw();
 
         this.getImage().itemInteractive(new PIXI.interaction.InteractionEvent(), this);
@@ -894,10 +886,16 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection>
     }
 
     public showItem(): void {
+        this._fillAlpha = this.model.options.fillAlpha === undefined ?  this._fillAlphaDefault : this.model.options.fillAlpha;
+        this.draw();
+
         this._fillElement.renderable = true;
     }
 
     public hideItem(): void {
+        this._fillAlpha = this._fillAlphaInteractive;
+        this.draw();
+
         this._fillElement.renderable = false;
     }
     //</editor-fold>
diff --git a/src/lib/elements/collections/LegendCollection.ts b/src/lib/elements/collections/LegendCollection.ts
index 41dd2427c24e0cf231f2f6c698b0dae71b14df16..94c1b9bca1f6c579bdcc944ddfc885c05c466e25 100644
--- a/src/lib/elements/collections/LegendCollection.ts
+++ b/src/lib/elements/collections/LegendCollection.ts
@@ -30,9 +30,6 @@ export class LegendCollection extends BaseElementContainer<Models.LegendCollecti
      */
     protected _columns: LegendColumnCollection[]; // TODO implement this -> add in added
     protected _rectangle: PIXI.Rectangle;
-    /*
-    private _isSelftest: boolean;
-    */
 
     /**
      * Interactions
diff --git a/src/lib/elements/connections/Line.ts b/src/lib/elements/connections/Line.ts
index 4a33b7f4e4a198f7b5dc142184320c881a12a5e3..48604696697cac00e485fb14560920f524f62974 100644
--- a/src/lib/elements/connections/Line.ts
+++ b/src/lib/elements/connections/Line.ts
@@ -49,8 +49,8 @@ export class Line extends BaseElementContainer<Models.Line> {
      */
     private _graphicLine: GraphicLine;
     protected _strokeWidth: number;
-    protected _lineColor: number;
-    protected _lineAlpha: number;
+    protected _lineColor: number | undefined;
+    protected _lineAlpha: number | undefined;
 
     /**
      * Interactions
@@ -108,10 +108,12 @@ export class Line extends BaseElementContainer<Models.Line> {
                 hasFill: false,
             };
         }
-        if (!this.model.options.lineColor) {
+        if (this.model.options.lineColor === undefined || this.model.options.lineColor === null) {
+            this.model.options.hasLine = true;
             this.model.options.lineColor = this._lineColorDefault;
         }
-        if (!this.model.options.lineAlpha) {
+        if (this.model.options.lineAlpha === undefined || this.model.options.lineAlpha === null) {
+            this.model.options.hasLine = true;
             this.model.options.lineAlpha = this._lineAlphaDefault;
         }
 
@@ -746,7 +748,7 @@ export class Line extends BaseElementContainer<Models.Line> {
 
         this.removeChild(this._configurationElement);
 
-        this._lineColor = this.model.options.lineColor || this._lineColorDefault;
+        this._lineColor = this.model.options.lineColor;
         this.draw();
 
         this.parent.sortChildren();
@@ -847,7 +849,7 @@ export class Line extends BaseElementContainer<Models.Line> {
     }
 
     protected _removeModeBlocked(): void {
-        this._lineColor = this.model.options.lineColor || this._lineColorDefault;
+        this._lineColor = this.model.options.lineColor;
         this.draw();
 
         this.filters = [];
@@ -923,7 +925,7 @@ export class Line extends BaseElementContainer<Models.Line> {
     }
 
     protected _removeModeSelftestChoosing(): void {
-        this._lineColor = this.model.options.lineColor || this._lineColorDefault;
+        this._lineColor = this.model.options.lineColor;
         this.draw();
 
         // Events
@@ -945,7 +947,7 @@ export class Line extends BaseElementContainer<Models.Line> {
     }
 
     protected _removeModeInteractiveChoosing(): void {
-        this._lineColor = this.model.options.lineColor || this._lineColorDefault;
+        this._lineColor = this.model.options.lineColor;
         this.draw();
 
         // Events
@@ -967,7 +969,7 @@ export class Line extends BaseElementContainer<Models.Line> {
     }
 
     protected _removeFillModeChoosing(parent: PositionPoint): void {
-        this._lineColor = this.model.options.lineColor || this._lineColorDefault;
+        this._lineColor = this.model.options.lineColor;
         this.draw();
 
         // Events
diff --git a/src/lib/elements/elements.ts b/src/lib/elements/elements.ts
index ba254cc0fc205894bbfe8e36e9369e076fe98240..ac04f824025b39467e6159f9a4cf67410089b4e7 100644
--- a/src/lib/elements/elements.ts
+++ b/src/lib/elements/elements.ts
@@ -7,6 +7,7 @@ export * from "./images/MedsurfSprite";
 export * from "./images/MedsurfTileSprite";
 
 export * from "./interactions/image/ImageNavigatorElement";
+export * from "./interactions/image/VirtualPointerElement";
 
 export * from "./positionings/PositionPoint";
 
diff --git a/src/lib/elements/images/MedsurfSprite.ts b/src/lib/elements/images/MedsurfSprite.ts
index 3ab12fb6eb1f6577609ec45a35b6d9cbee29cc6a..09ef41b7eaf03f54e56d663544bad23f966105e6 100644
--- a/src/lib/elements/images/MedsurfSprite.ts
+++ b/src/lib/elements/images/MedsurfSprite.ts
@@ -264,12 +264,19 @@ export class MedsurfSprite extends BaseSprite {
         const height1 = this.height * width / this.width;
         const width2 = this.width * height / this.height;
 
+        // TODO use scale here -> so we don't shrink the stuff
         if (height1 > height) {
+            this.scale.set(width2 / this.width, height / this.height);
+            /*
             this.width = width2;
             this.height = height;
+            */
         } else {
+            this.scale.set(width / this.width, height1 / this.height);
+            /*
             this.width = width;
             this.height = height1;
+            */
         }
 
         this.position.set(this._canvas.width / 2 - this.width / 2, this._canvas.height / 2 - this.height / 2);
diff --git a/src/lib/elements/images/MedsurfTileSprite.ts b/src/lib/elements/images/MedsurfTileSprite.ts
index ed74345b05a6be089eb6b45b271d76d68280eb88..9b03635bbd57c8de3ffddf02714b09c27873b156 100644
--- a/src/lib/elements/images/MedsurfTileSprite.ts
+++ b/src/lib/elements/images/MedsurfTileSprite.ts
@@ -78,7 +78,7 @@ export class MedsurfTileSprite extends MedsurfSprite {
 
         // Init
         this._loader = PIXI.Loader.shared;
-        this._loader.concurrency = 20;
+        this._loader.concurrency = 100;
         this._loader.onLoad.add(this._onLoad.bind(this));
 
         this._container = new PIXI.Container();
@@ -183,7 +183,7 @@ export class MedsurfTileSprite extends MedsurfSprite {
                 const rectangle = element.getRectangle();
                 rectangle.x += element.position.x;
                 rectangle.y += element.position.y;
-                rectangle.pad(10, 10);
+                rectangle.pad(1, 1);
 
                 element.renderable = !!(x + width > rectangle.x && x < rectangle.x + rectangle.width && y + height > rectangle.y && y < rectangle.y + rectangle.height);
             }
diff --git a/src/lib/elements/interactions/color/ColorElement.ts b/src/lib/elements/interactions/color/ColorElement.ts
index dbe20bcc470ed893d85025da7e6cb11cccced5f8..98991d9d1096da1eefb842a042141d22bd0165a5 100644
--- a/src/lib/elements/interactions/color/ColorElement.ts
+++ b/src/lib/elements/interactions/color/ColorElement.ts
@@ -212,11 +212,11 @@ export class ColorElement extends BaseContainer {
                 this._alphaSliderElement.draw();
                 this.addChild(this._alphaSliderElement);
             }
-        }
 
-        if (this.removeChild(this._clearButtonElement) === null) {
-            this._clearButtonElement.draw();
-            this.addChild(this._clearButtonElement);
+            if (this.removeChild(this._clearButtonElement) === null) {
+                this._clearButtonElement.draw();
+                this.addChild(this._clearButtonElement);
+            }
         }
 
         if (this.removeChild(this._colorPaletteElement) === null) {
diff --git a/src/lib/elements/interactions/color/ColorSquareElement.ts b/src/lib/elements/interactions/color/ColorSquareElement.ts
index d5ea7bdf88e2932c4038e303d30647e99c0e72b4..12577617cf7bf2afa4459278a0aec04b748d64d7 100644
--- a/src/lib/elements/interactions/color/ColorSquareElement.ts
+++ b/src/lib/elements/interactions/color/ColorSquareElement.ts
@@ -139,6 +139,8 @@ export class ColorSquareElement extends BaseContainer {
 
         const hsl = ColorElement.colorToHSL(color);
         this._createSliderBackground(hsl.h);
+        this._pointElement.position.x = this._squareWidth * hsl.s;
+        this._pointElement.position.y = this._squareHeight - (this._squareHeight * hsl.v);
     }
     //</editor-fold>
 
diff --git a/src/lib/elements/interactions/image/ImageNavigatorElement.ts b/src/lib/elements/interactions/image/ImageNavigatorElement.ts
index bfed739dd7c3e306bf970d56a1efc4ee85ba42ee..67f671e3197f0d3bac4c8896ecfffe5d93afaa8a 100644
--- a/src/lib/elements/interactions/image/ImageNavigatorElement.ts
+++ b/src/lib/elements/interactions/image/ImageNavigatorElement.ts
@@ -65,7 +65,7 @@ export class ImageNavigatorElement extends BaseContainer {
         this.zIndex = 100;
         this._canvas = canvas;
         this._image = image;
-        this._navigationHeight = canvas.height / 6; // TODO
+        this._navigationHeight = Math.round(canvas.height / 6); // TODO
         this._hidden = false;
 
         // Events
@@ -86,10 +86,10 @@ export class ImageNavigatorElement extends BaseContainer {
         this.modeInteraction.on("remove-default", () => {
             this._spriteElement.off("pointerover", this._onHover, this);
             this._spriteElement.off("pointerout", this._onRelease, this);
-            this.on("pointerdown", this._moveInteraction.startMove, this._moveInteraction);
-            this.on("pointermove", this._moveInteraction.onMove, this._moveInteraction);
-            this.on("pointerup", this._moveInteraction.endMove, this._moveInteraction);
-            this.on("pointerupoutside", this._moveInteraction.endMove, this._moveInteraction);
+            this.off("pointerdown", this._moveInteraction.startMove, this._moveInteraction);
+            this.off("pointermove", this._moveInteraction.onMove, this._moveInteraction);
+            this.off("pointerup", this._moveInteraction.endMove, this._moveInteraction);
+            this.off("pointerupoutside", this._moveInteraction.endMove, this._moveInteraction);
 
             this._image.off("onMove", this._onImage, this);
             this._image.off("onZoom", this._onImage, this);
@@ -211,7 +211,7 @@ export class ImageNavigatorElement extends BaseContainer {
 
         // TODO not correct -> WHY ???
         this._rectangle = new PIXI.Rectangle(0, 0, this._spriteElement.width, this._spriteElement.height);
-        const buttonSize = this._spriteElement.height / 3;
+        const buttonSize = this._navigationHeight / 3;
 
         this._visibleAreaElement = new PIXI.Graphics();
         this._visibleAreaElement.zIndex = 20;
diff --git a/src/lib/elements/interactions/text/CaretElement.ts b/src/lib/elements/interactions/text/CaretElement.ts
index bb19f917799013d8644b79a9cf3420c90fba48f4..e77ec31b31b51df856c3b506d57027e5fa78f5e2 100644
--- a/src/lib/elements/interactions/text/CaretElement.ts
+++ b/src/lib/elements/interactions/text/CaretElement.ts
@@ -83,13 +83,7 @@ export class CaretElement extends BaseContainer {
         // @ts-ignore
         const style = this._targetInteraction.targetElement._style;
 
-        let heightFactor: number = 0;
-        let index = text.indexOf("\n");
-        while (index > -1) {
-            text = text.substring(index + 1);
-            heightFactor++;
-            index = text.indexOf("\n");
-        }
+        const heightFactor: number = (text.match(/\n/g) || []).length;
 
         if (style.wordWrap) {
             let startIndex: number = 0;
diff --git a/src/lib/elements/primitives/ArrowPrimitive.ts b/src/lib/elements/primitives/ArrowPrimitive.ts
index 565d5f1fca30602f0cdfa2491b518776ef342b8b..093a8dd814e9700283273921e284ff6bb488b6a8 100644
--- a/src/lib/elements/primitives/ArrowPrimitive.ts
+++ b/src/lib/elements/primitives/ArrowPrimitive.ts
@@ -108,11 +108,17 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
                 hasFill: this._hasFillDefault,
             };
         }
-        if (this.model.options.hasLine && !this.model.options.lineColor) {
+        if (this.model.options.hasLine && (this.model.options.lineColor === undefined || this.model.options.lineColor === null)) {
             this.model.options.lineColor = this._lineColorDefault;
         }
-        if (this.model.options.hasLine && !this.model.options.lineAlpha) {
-            this.model.options.fillAlpha = this._lineAlphaDefault;
+        if (this.model.options.hasLine && (this.model.options.lineAlpha === undefined || this.model.options.lineAlpha === null)) {
+            this.model.options.lineAlpha = this._lineAlphaDefault;
+        }
+        if (this.model.options.hasFill && (this.model.options.fillColor === undefined || this.model.options.fillColor === null)) {
+            this.model.options.fillColor = this._fillColorDefault;
+        }
+        if (this.model.options.hasFill && (this.model.options.lineAlpha === undefined || this.model.options.lineAlpha === null)) {
+            this.model.options.fillAlpha = this._fillAlphaDefault;
         }
 
         // Setup
@@ -240,7 +246,7 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
 
         // On added event
         this.on("added", (parent: PositionPoint) => {
-            this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+            this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
 
             this._selftestButton.text = parent.isSelftest ? "\uf4b3" : "\uf075";
             this._selftestButton.on("button", parent.onSelftestButton, parent);
@@ -312,8 +318,6 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
         this._arrowElement.drawPolygon(polygon);
         this._arrowElement.endFill();
 
-        // @ts-ignore
-        // this._arrowElement.hitArea = new PIXI.Polygon(this._arrowElement.geometry.points);
         this._arrowElement.hitArea = new PIXI.Polygon(polygon);
     }
 
@@ -400,6 +404,7 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
     protected _stageReady(): void {
         this.draw();
         this.emit("stage-ready");
+        this.parent.emit("onLineMove", new PIXI.interaction.InteractionEvent());
     }
 
     protected _showInteractions(): void {
@@ -438,7 +443,7 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
         const parent = this.parent as PositionPoint;
 
         this._selftestButton.text = parent.isSelftest ? "\uf4b3" : "\uf075";
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         if (parent.isSelftest) {
@@ -584,7 +589,7 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
     }
 
     protected _removeModeBlocked(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         this.filters = [];
@@ -643,7 +648,7 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
     }
 
     protected _removeSelftestModeChoosing(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         // Events
@@ -665,7 +670,7 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive>
     }
 
     protected _removeModeInteractiveChoosing(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         // Events
diff --git a/src/lib/elements/primitives/EllipsePrimitive.ts b/src/lib/elements/primitives/EllipsePrimitive.ts
index b216f3530c559d533f6385ee6b28f78a7ed2f8d5..9c985c151fa70eee46745cce1d22bf3bfc5afd74 100644
--- a/src/lib/elements/primitives/EllipsePrimitive.ts
+++ b/src/lib/elements/primitives/EllipsePrimitive.ts
@@ -105,11 +105,17 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
                 hasFill: this._hasFillDefault,
             };
         }
-        if (this.model.options.hasLine && !this.model.options.lineColor) {
+        if (this.model.options.hasLine && (this.model.options.lineColor === undefined || this.model.options.lineColor === null)) {
             this.model.options.lineColor = this._lineColorDefault;
         }
-        if (this.model.options.hasLine && !this.model.options.lineAlpha) {
-            this.model.options.fillAlpha = this._lineAlphaDefault;
+        if (this.model.options.hasLine && (this.model.options.lineAlpha === undefined || this.model.options.lineAlpha === null)) {
+            this.model.options.lineAlpha = this._lineAlphaDefault;
+        }
+        if (this.model.options.hasFill && (this.model.options.lineAlpha === undefined || this.model.options.lineAlpha === null)) {
+            this.model.options.fillColor = this._fillColorDefault
+        }
+        if (this.model.options.hasFill && (this.model.options.fillAlpha === undefined || this.model.options.fillAlpha === null)) {
+            this.model.options.fillAlpha = this._fillAlphaDefault;
         }
 
         // Setup
@@ -226,7 +232,7 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
 
         // On added event
         this.on("added", (parent: PositionPoint) => {
-            this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+            this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
 
             this._selftestButton.text = parent.isSelftest ? "\uf4b3" : "\uf075";
             this._selftestButton.on("button", parent.onSelftestButton, parent);
@@ -411,7 +417,7 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
         const parent = this.parent as PositionPoint;
 
         this._selftestButton.text = parent.isSelftest ? "\uf4b3" : "\uf075";
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         if (parent.isSelftest) {
@@ -557,7 +563,7 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
     }
 
     protected _removeModeBlocked(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         this.filters = [];
@@ -616,7 +622,7 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
     }
 
     protected _removeModeSelftestChoosing(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         // Events
@@ -638,7 +644,7 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
     }
 
     protected _removeModeInteractiveChoosing(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         // Events
diff --git a/src/lib/elements/primitives/RectanglePrimitive.ts b/src/lib/elements/primitives/RectanglePrimitive.ts
index b7e1185393ddcf1963dac071440afe5aa83f2a40..bb2fe2042449ea5880dbdc7566b99893aa468229 100644
--- a/src/lib/elements/primitives/RectanglePrimitive.ts
+++ b/src/lib/elements/primitives/RectanglePrimitive.ts
@@ -105,11 +105,17 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
                 hasFill: this._hasFillDefault,
             };
         }
-        if (this.model.options.hasLine && !this.model.options.lineColor) {
+        if (this.model.options.hasLine && (this.model.options.lineColor === undefined || this.model.options.lineColor === null)) {
             this.model.options.lineColor = this._lineColorDefault;
         }
-        if (this.model.options.hasLine && !this.model.options.lineAlpha) {
-            this.model.options.fillAlpha = this._lineAlphaDefault;
+        if (this.model.options.hasLine && (this.model.options.lineAlpha === undefined || this.model.options.lineAlpha === null)) {
+            this.model.options.lineAlpha = this._lineAlphaDefault;
+        }
+        if (this.model.options.hasFill && (this.model.options.fillColor === undefined || this.model.options.fillColor === null)) {
+            this.model.options.lineColor = this._fillColorDefault;
+        }
+        if (this.model.options.hasFill && (this.model.options.fillAlpha === undefined || this.model.options.fillAlpha === null)) {
+            this.model.options.fillAlpha = this._fillAlphaDefault;
         }
 
         // Setup
@@ -226,7 +232,7 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
 
         // On added event
         this.on("added", (parent: PositionPoint) => {
-            this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+            this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
 
             this._selftestButton.text = parent.isSelftest ? "\uf4b3" : "\uf075";
             this._selftestButton.on("button", parent.onSelftestButton, parent);
@@ -411,7 +417,7 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
         const parent = this.parent as PositionPoint;
 
         this._selftestButton.text = parent.isSelftest ? "\uf4b3" : "\uf075";
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         if (parent.isSelftest) {
@@ -557,7 +563,7 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
     }
 
     protected _removeModeBlocked(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         this.filters = [];
@@ -616,7 +622,7 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
     }
 
     protected _removeModeSelftestChoosing(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         // Events
@@ -638,7 +644,7 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
     }
 
     protected _removeModeInteractiveChoosing(parent: PositionPoint): void {
-        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor || this._fillColorDefault;
+        this._fillColor = parent.isSelftest ? this._fillColorSelftest : this.model.options.fillColor;
         this.draw();
 
         // Events
diff --git a/src/lib/elements/primitives/TextPrimitive.ts b/src/lib/elements/primitives/TextPrimitive.ts
index dd0c7a53e2b35fa4cbd2915e15d22a03e31c5877..08f2a358d72aa9027ca492b4e48e067b84d70603 100644
--- a/src/lib/elements/primitives/TextPrimitive.ts
+++ b/src/lib/elements/primitives/TextPrimitive.ts
@@ -114,24 +114,24 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> {
                 breakWords: this._breakWordsDefault,
             };
         }
-        if (!this.model.style.fill) {
+        if (this.model.style.fill === undefined || this.model.style.fill === null) {
             this.model.style.fill = this._fillColorDefault;
         }
-        if (!this.model.style.fontSize) {
+        if (this.model.style.fontSize === undefined || this.model.style.fontSize === null) {
             this.model.style.fontSize = this._fontSizeDefault;
         }
-        if (!this.model.style.fontFamily) {
+        if (this.model.style.fontFamily === undefined || this.model.style.fontFamily === null) {
             this.model.style.fontFamily = this._fontFamilyDefault;
         }
-        if (!this.model.style.align) {
+        if (this.model.style.align === undefined || this.model.style.align === null) {
             this.model.style.align = this._alignDefault;
         }
-        if (!this.model.style.breakWords) {
+        if (this.model.style.breakWords === undefined || this.model.style.breakWords === null) {
             this.model.style.breakWords = this._breakWordsDefault;
         }
 
         // Setup
-        this.zIndex = 300; // TODO how to implement moveToFront etc...
+        this.zIndex = 301; // TODO how to implement moveToFront etc...
 
         this._style = new PIXI.TextStyle(this.model.style);
         this._style.fontSize = Math.round(this._style.fontSize * this.imageWidth);
@@ -306,9 +306,6 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> {
 
     //<editor-fold desc="Public functions">
     public draw(): void {
-        const bounds = this._textElement.getLocalBounds(new PIXI.Rectangle());
-        this._rotateContainer.pivot.set(bounds.width / 2, bounds.height / 2);
-
         // TODO check this values
         // this.texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;
         // this.context.scale(200,200)
@@ -322,9 +319,18 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> {
         this._pivotPoint.endFill();
         */
 
-        // TODO this._textElement.hitArea =
-
         this.sortChildren();
+
+        const bounds = this._textElement.getLocalBounds(new PIXI.Rectangle());
+        this._rotateContainer.pivot.set(bounds.width / 2, bounds.height / 2);
+        // TODO new solution
+        /*
+        this._rotateContainer.pivot.x = this._textElement.context.measureText(this._textElement.text).width / 2;
+
+        const heightFactor: number = (this._textElement.text.match(/\n/g) || []).length + 1;
+        const localHeight = this._textElement.style.fontSize + this._textElement.style.strokeThickness + this._textElement.style.lineHeight + 2;
+        this._rotateContainer.pivot.y = (localHeight * heightFactor) / 2;
+        */
     }
 
     public cleanUp(): void {
@@ -825,7 +831,9 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> {
         // Position TODO not needed ??
         // this.position.x += (dX + dW / 2) * Math.cos(this.rotation) - (dY + dH / 2) * Math.sin(this.rotation);
         // this.position.y += (dY + dH / 2) * Math.cos(this.rotation) + (dX + dW / 2) * Math.sin(this.rotation);
-        this._rotateContainer.pivot.set(this._textElement.width / 2, this._textElement.height / 2);
+        // TODO check this._rotateContainer.pivot.set(this._textElement.width / 2, this._textElement.height / 2);
+        const bounds = this._textElement.getLocalBounds(new PIXI.Rectangle());
+        this._rotateContainer.pivot.set(bounds.width / 2, bounds.height / 2);
 
         this.draw();
         this._scaleElement.draw();
@@ -970,8 +978,16 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> {
     public showItem(): void {
         this._textElement.renderable = true;
 
-        const bounds = this.getLocalBounds();
+        const bounds = this._textElement.getLocalBounds(new PIXI.Rectangle());
         this._rotateContainer.pivot.set(bounds.width / 2, bounds.height / 2);
+        /*
+        // TODO new solution
+        this._rotateContainer.pivot.x = this._textElement.context.measureText(this._textElement.text).width / 2;
+
+        const heightFactor: number = (this._textElement.text.match(/\n/g) || []).length + 1;
+        const localHeight = this._textElement.style.fontSize + this._textElement.style.strokeThickness + this._textElement.style.lineHeight + 2;
+        this._rotateContainer.pivot.y = (localHeight * heightFactor) / 2;
+        */
     }
 
     public hideItem(): void {
diff --git a/src/public/index.html b/src/public/index.html
index 4c6e03d7fdc48e47b6fa4649934bc7af7e8ecbc0..d6282fa6d958f59582a7808967913956dc7f6af6 100644
--- a/src/public/index.html
+++ b/src/public/index.html
@@ -345,7 +345,7 @@
         </style>
     </head>
     <body>
-        <canvas id="medsurf_canvas" width="1200" height="800" oncontextmenu="return false;"></canvas>
+        <canvas id="medsurf_canvas" width="1500" height="952" oncontextmenu="return false;"></canvas>
         <button id="button_default">Default</button>
         <button id="button_marker">Marker</button>
         <button id="button_selftest">Selftest</button>